diff --git a/src/abis/BEMultiSigWallet.json b/src/abis/BEMultiSigWallet.json index 6187cf3..8543c19 100644 --- a/src/abis/BEMultiSigWallet.json +++ b/src/abis/BEMultiSigWallet.json @@ -13,6 +13,11 @@ "name": "proposers", "type": "address[]" }, + { + "internalType": "address[]", + "name": "confirmers", + "type": "address[]" + }, { "internalType": "address[]", "name": "executors", @@ -272,6 +277,20 @@ "name": "RoleRevoked", "type": "event" }, + { + "inputs": [], + "name": "CONFIRM_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", @@ -986,15 +1005,15 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CallExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"CallScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"}],\"name\":\"changeDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"confirmTransactionBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"executeBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperationBatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"revokeConfirmationBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"scheduleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"CallExecuted(bytes32,uint256,address,uint256,bytes)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"},\"CallScheduled(bytes32,uint256,address,uint256,bytes,bytes32,uint256)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"},\"RequirementChange(uint256,uint256)\":{\"details\":\"Emitted when the number of required confimations is modified.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'proposer' role.\"},\"changeDelay(uint256)\":{\"details\":\"Changes the minimum wallet duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the wallet itself. This can only be achieved by scheduling and later executing an operation where the wallet is the target and the data is the ABI-encoded call to this function.\"},\"changeRequirement(uint256)\":{\"details\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\",\"params\":{\"_required\":\"Number of required confirmations.\"}},\"confirmTransaction(bytes32)\":{\"details\":\"Allows an executor to confirm a transaction. Requirements - the caller must have the 'executor' role.\"},\"confirmTransactionBatch(bytes32[])\":{\"details\":\"Allows an executor to confirm multiple transactions.\"},\"constructor\":{\"details\":\"Initializes the contract with a given `minDelay`.\"},\"execute(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.\"},\"executeBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a single transaction.\"},\"hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeConfirmation(bytes32)\":{\"details\":\"Allows an executor to revoke a confirmation for a transaction. Requirements - the caller must have the 'executor' role.\"},\"revokeConfirmationBatch(bytes32[])\":{\"details\":\"Allows an executor to revoke multiple confirmations for a transaction.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"schedule(address,uint256,bytes,bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.\"},\"scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"MultiSigWallet with timelocker\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/BEMultiSigWallet.sol\":\"BEMultiSigWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/core/BEMultiSigWallet.sol\":{\"keccak256\":\"0x7c1971c54a4a58a4a8e4d64009658cb838601e821b7e504100c7dafbe6a6e5ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6549e5713a356ea337a38ef9b19a720625974d34fbc8ca7e8a28e089d2b4d4bc\",\"dweb:/ipfs/Qmdy8iCkZv6gfq7U4Z4v2zJ8GnGKvjFkwJyC642Y9wmMGY\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620044ec380380620044ec8339818101604052810190620000379190620007f1565b620000697f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca580620002b060201b60201c565b620000bb7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620002b060201b60201c565b6200010d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620002b060201b60201c565b6200014e7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620001426200031360201b60201c565b6200031b60201b60201c565b620001807f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5306200031b60201b60201c565b60005b8251811015620001f057620001dc7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1848381518110620001c857620001c76200088b565b5b60200260200101516200031b60201b60201c565b80620001e890620008e9565b905062000183565b5060005b815181101562000261576200024d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e638383815181106200023957620002386200088b565b5b60200260200101516200031b60201b60201c565b806200025990620008e9565b9050620001f4565b50826004819055507f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560006004546040516200029f92919062000995565b60405180910390a1505050620009c2565b6000620002c3836200033160201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b6200032d82826200035060201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b6200036782826200039860201b6200179a1760201c565b6200039381600160008581526020019081526020016000206200048960201b6200187a1790919060201c565b505050565b620003aa8282620004c160201b60201c565b6200048557600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200042a6200031360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620004b9836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200052b60201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200053f8383620005a560201b60201c565b6200059a5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506200059f565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620005f181620005dc565b8114620005fd57600080fd5b50565b6000815190506200061181620005e6565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000667826200061c565b810181811067ffffffffffffffff821117156200068957620006886200062d565b5b80604052505050565b60006200069e620005c8565b9050620006ac82826200065c565b919050565b600067ffffffffffffffff821115620006cf57620006ce6200062d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200071282620006e5565b9050919050565b620007248162000705565b81146200073057600080fd5b50565b600081519050620007448162000719565b92915050565b6000620007616200075b84620006b1565b62000692565b90508083825260208201905060208402830185811115620007875762000786620006e0565b5b835b81811015620007b457806200079f888262000733565b84526020840193505060208101905062000789565b5050509392505050565b600082601f830112620007d657620007d562000617565b5b8151620007e88482602086016200074a565b91505092915050565b6000806000606084860312156200080d576200080c620005d2565b5b60006200081d8682870162000600565b935050602084015167ffffffffffffffff811115620008415762000840620005d7565b5b6200084f86828701620007be565b925050604084015167ffffffffffffffff811115620008735762000872620005d7565b5b6200088186828701620007be565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008f682620005dc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200092c576200092b620008ba565b5b600182019050919050565b6000819050919050565b6000819050919050565b60006200096c62000966620009608462000937565b62000941565b620005dc565b9050919050565b6200097e816200094b565b82525050565b6200098f81620005dc565b82525050565b6000604082019050620009ac600083018562000973565b620009bb602083018462000984565b9392505050565b613b1a80620009d26000396000f3fe6080604052600436106101fd5760003560e01c806379716e431161010d578063ba51a6df116100a0578063d45c44351161006f578063d45c4435146107af578063d547741f146107ec578063dc8452cd14610815578063e38335e514610840578063f3fc536d1461085c57610204565b8063ba51a6df146106f5578063c4d252f51461071e578063c63c4e9b14610747578063ca15c8731461077257610204565b80639010d07c116100dc5780639010d07c1461061357806391d1485414610650578063a217fddf1461068d578063b1c5f427146106b857610204565b806379716e43146105595780638065657f146105825780638f2a0bb0146105bf5780638f61f4f5146105e857610204565b80632ab0f529116101905780633b04850e1161015f5780633b04850e146104645780635037ec621461048d578063584b153e146104b657806359111070146104f35780636486aa511461051c57610204565b80632ab0f529146103985780632f2ff15d146103d557806331d50750146103fe57806336568abe1461043b57610204565b80630d3cf6fc116101cc5780630d3cf6fc146102d7578063134008d31461030257806313bc9f201461031e578063248a9ca31461035b57610204565b806301d5062a1461020957806301ffc9a71461023257806307bd02651461026f5780630c4ecab41461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b50610230600480360381019061022b919061242d565b610885565b005b34801561023e57600080fd5b5061025960048036038101906102549190612534565b610922565b604051610266919061257c565b60405180910390f35b34801561027b57600080fd5b5061028461099c565b60405161029191906125a6565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc91906125c1565b6109c0565b6040516102ce919061257c565b60405180910390f35b3480156102e357600080fd5b506102ec6109ef565b6040516102f991906125a6565b60405180910390f35b61031c60048036038101906103179190612601565b610a13565b005b34801561032a57600080fd5b506103456004803603810190610340919061269b565b610a93565b604051610352919061257c565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061269b565b610ab9565b60405161038f91906125a6565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061269b565b610ad8565b6040516103cc919061257c565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f791906125c1565b610aed565b005b34801561040a57600080fd5b506104256004803603810190610420919061269b565b610b16565b604051610432919061257c565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d91906125c1565b610b2a565b005b34801561047057600080fd5b5061048b6004803603810190610486919061271e565b610bad565b005b34801561049957600080fd5b506104b460048036038101906104af919061276b565b610c36565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061269b565b610ce9565b6040516104ea919061257c565b60405180910390f35b3480156104ff57600080fd5b5061051a6004803603810190610515919061271e565b610cfe565b005b34801561052857600080fd5b50610543600480360381019061053e919061269b565b610d87565b604051610550919061257c565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b919061269b565b610e94565b005b34801561058e57600080fd5b506105a960048036038101906105a49190612601565b610fd9565b6040516105b691906125a6565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e1919061289a565b611018565b005b3480156105f457600080fd5b506105fd6111cb565b60405161060a91906125a6565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612989565b6111ef565b60405161064791906129d8565b60405180910390f35b34801561065c57600080fd5b50610677600480360381019061067291906125c1565b61121e565b604051610684919061257c565b60405180910390f35b34801561069957600080fd5b506106a2611288565b6040516106af91906125a6565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da91906129f3565b61128f565b6040516106ec91906125a6565b60405180910390f35b34801561070157600080fd5b5061071c6004803603810190610717919061276b565b6112d4565b005b34801561072a57600080fd5b506107456004803603810190610740919061269b565b611387565b005b34801561075357600080fd5b5061075c611449565b6040516107699190612ade565b60405180910390f35b34801561077e57600080fd5b506107996004803603810190610794919061269b565b61144f565b6040516107a69190612ade565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d1919061269b565b611473565b6040516107e39190612ade565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e91906125c1565b611490565b005b34801561082157600080fd5b5061082a6114b9565b6040516108379190612ade565b60405180910390f35b61085a600480360381019061085591906129f3565b6114bf565b005b34801561086857600080fd5b50610883600480360381019061087e919061269b565b611655565b005b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16108b7816108b26118aa565b6118b2565b60006108c7898989898989610fd9565b90506108d3818461194f565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161090f96959493929190612b57565b60405180910390a3505050505050505050565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610995575061099482611a04565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610a3f81600061121e565b610a5557610a5481610a4f6118aa565b6118b2565b5b6000610a65888888888888610fd9565b9050610a718185611a7e565b610a808160008a8a8a8a611b67565b610a8981611c5f565b5050505050505050565b600080610a9f83611473565b9050600181118015610ab15750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b60006001610ae583611473565b149050919050565b610af682610ab9565b610b0781610b026118aa565b6118b2565b610b118383611cc3565b505050565b600080610b2283611473565b119050919050565b610b326118aa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612c36565b60405180910390fd5b610ba98282611cf7565b5050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610bd981600061121e565b610bef57610bee81610be96118aa565b6118b2565b5b60005b83839050811015610c3057610c1f848483818110610c1357610c12612c56565b5b90506020020135611655565b80610c2990612cb4565b9050610bf2565b50505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90612d6f565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610cd7929190612d8f565b60405180910390a18060048190555050565b60006001610cf683611473565b119050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610d2a81600061121e565b610d4057610d3f81610d3a6118aa565b6118b2565b5b60005b83839050811015610d8157610d70848483818110610d6457610d63612c56565b5b90506020020135610e94565b80610d7a90612cb4565b9050610d43565b50505050565b600080600090506000610db97fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361144f565b905060005b81811015610e8b57600360008681526020019081526020016000206000610e057fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63846111ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e6257600183610e5f9190612db8565b92505b600554831415610e785760019350505050610e8f565b8080610e8390612cb4565b915050610dbe565b5050505b919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610ec081600061121e565b610ed657610ed581610ed06118aa565b6118b2565b5b610edf82610ce9565b610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590612e80565b60405180910390fd5b60016003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda83604051610fcd91906125a6565b60405180910390a25050565b6000868686868686604051602001610ff696959493929190612ea0565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161104a816110456118aa565b6118b2565b878790508a8a905014611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990612f6e565b60405180910390fd5b858590508a8a9050146110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612f6e565b60405180910390fd5b60006110ec8b8b8b8b8b8b8b8b61128f565b90506110f8818461194f565b60005b8b8b90508110156111bd5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061113c5761113b612c56565b5b90506020020160208101906111519190612f8e565b8d8d8681811061116457611163612c56565b5b905060200201358c8c8781811061117e5761117d612c56565b5b90506020028101906111909190612fca565b8c8b6040516111a496959493929190612b57565b60405180910390a3806111b690612cb4565b90506110fb565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b60006112168260016000868152602001908152602001600020611d2b90919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600088888888888888886040516020016112b09897969594939291906132c6565b60405160208183030381529060405280519060200120905098975050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990612d6f565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e60055482604051611375929190612d8f565b60405180910390a18060058190555050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16113b9816113b46118aa565b6118b2565b6113c282610ce9565b611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906133a6565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b600061146c60016000848152602001908152602001600020611d45565b9050919050565b600060026000838152602001908152602001600020549050919050565b61149982610ab9565b6114aa816114a56118aa565b6118b2565b6114b48383611cf7565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636114eb81600061121e565b61150157611500816114fb6118aa565b6118b2565b5b868690508989905014611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090612f6e565b60405180910390fd5b848490508989905014611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890612f6e565b60405180910390fd5b60006115a38a8a8a8a8a8a8a8a61128f565b90506115af8185611a7e565b60005b8a8a905081101561163f5761162e82828d8d858181106115d5576115d4612c56565b5b90506020020160208101906115ea9190612f8e565b8c8c868181106115fd576115fc612c56565b5b905060200201358b8b8781811061161757611616612c56565b5b90506020028101906116299190612fca565b611b67565b8061163890612cb4565b90506115b2565b5061164981611c5f565b50505050505050505050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361168181600061121e565b61169757611696816116916118aa565b6118b2565b5b6116a082610ce9565b6116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690612e80565b60405180910390fd5b60006003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f9aec1a62b961581534d37fd62d35e3648f05a17b1f986eda1d1a9d97b14784068360405161178e91906125a6565b60405180910390a25050565b6117a4828261121e565b61187657600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061181b6118aa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006118a2836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611d5a565b905092915050565b600033905090565b6118bc828261121e565b61194b576118e18173ffffffffffffffffffffffffffffffffffffffff166014611dca565b6118ef8360001c6020611dca565b6040516020016119009291906134d8565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611942919061354b565b60405180910390fd5b5050565b61195882610b16565b15611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f906135df565b60405180910390fd5b6004548110156119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490613671565b60405180910390fd5b80426119e99190612db8565b60026000848152602001908152602001600020819055505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a775750611a7682612006565b5b9050919050565b611a8782610a93565b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613703565b60405180910390fd5b611acf82610d87565b611b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0590613795565b60405180910390fd5b6000801b811480611b245750611b2381610ad8565b5b611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90613827565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff16848484604051611b91929190613877565b60006040518083038185875af1925050503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5050905080611c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0e90613902565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5887878787604051611c4e9493929190613922565b60405180910390a350505050505050565b611c6881610a93565b611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613703565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b611ccd828261179a565b611cf2816001600085815260200190815260200160002061187a90919063ffffffff16565b505050565b611d018282612070565b611d26816001600085815260200190815260200160002061215190919063ffffffff16565b505050565b6000611d3a8360000183612181565b60001c905092915050565b6000611d53826000016121ac565b9050919050565b6000611d6683836121bd565b611dbf578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611dc4565b600090505b92915050565b606060006002836002611ddd9190613962565b611de79190612db8565b67ffffffffffffffff811115611e0057611dff6139bc565b5b6040519080825280601f01601f191660200182016040528015611e325781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611e6a57611e69612c56565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611ece57611ecd612c56565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611f0e9190613962565b611f189190612db8565b90505b6001811115611fb8577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611f5a57611f59612c56565b5b1a60f81b828281518110611f7157611f70612c56565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611fb1906139eb565b9050611f1b565b5060008414611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613a61565b60405180910390fd5b8091505092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61207a828261121e565b1561214d57600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506120f26118aa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612179836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6121e0565b905092915050565b600082600001828154811061219957612198612c56565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146122e85760006001826122129190613a81565b905060006001866000018054905061222a9190613a81565b905081811461229957600086600001828154811061224b5761224a612c56565b5b906000526020600020015490508087600001848154811061226f5761226e612c56565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806122ad576122ac613ab5565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506122ee565b60009150505b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612329826122fe565b9050919050565b6123398161231e565b811461234457600080fd5b50565b60008135905061235681612330565b92915050565b6000819050919050565b61236f8161235c565b811461237a57600080fd5b50565b60008135905061238c81612366565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126123b7576123b6612392565b5b8235905067ffffffffffffffff8111156123d4576123d3612397565b5b6020830191508360018202830111156123f0576123ef61239c565b5b9250929050565b6000819050919050565b61240a816123f7565b811461241557600080fd5b50565b60008135905061242781612401565b92915050565b600080600080600080600060c0888a03121561244c5761244b6122f4565b5b600061245a8a828b01612347565b975050602061246b8a828b0161237d565b965050604088013567ffffffffffffffff81111561248c5761248b6122f9565b5b6124988a828b016123a1565b955095505060606124ab8a828b01612418565b93505060806124bc8a828b01612418565b92505060a06124cd8a828b0161237d565b91505092959891949750929550565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612511816124dc565b811461251c57600080fd5b50565b60008135905061252e81612508565b92915050565b60006020828403121561254a576125496122f4565b5b60006125588482850161251f565b91505092915050565b60008115159050919050565b61257681612561565b82525050565b6000602082019050612591600083018461256d565b92915050565b6125a0816123f7565b82525050565b60006020820190506125bb6000830184612597565b92915050565b600080604083850312156125d8576125d76122f4565b5b60006125e685828601612418565b92505060206125f785828601612347565b9150509250929050565b60008060008060008060a0878903121561261e5761261d6122f4565b5b600061262c89828a01612347565b965050602061263d89828a0161237d565b955050604087013567ffffffffffffffff81111561265e5761265d6122f9565b5b61266a89828a016123a1565b9450945050606061267d89828a01612418565b925050608061268e89828a01612418565b9150509295509295509295565b6000602082840312156126b1576126b06122f4565b5b60006126bf84828501612418565b91505092915050565b60008083601f8401126126de576126dd612392565b5b8235905067ffffffffffffffff8111156126fb576126fa612397565b5b6020830191508360208202830111156127175761271661239c565b5b9250929050565b60008060208385031215612735576127346122f4565b5b600083013567ffffffffffffffff811115612753576127526122f9565b5b61275f858286016126c8565b92509250509250929050565b600060208284031215612781576127806122f4565b5b600061278f8482850161237d565b91505092915050565b60008083601f8401126127ae576127ad612392565b5b8235905067ffffffffffffffff8111156127cb576127ca612397565b5b6020830191508360208202830111156127e7576127e661239c565b5b9250929050565b60008083601f84011261280457612803612392565b5b8235905067ffffffffffffffff81111561282157612820612397565b5b60208301915083602082028301111561283d5761283c61239c565b5b9250929050565b60008083601f84011261285a57612859612392565b5b8235905067ffffffffffffffff81111561287757612876612397565b5b6020830191508360208202830111156128935761289261239c565b5b9250929050565b600080600080600080600080600060c08a8c0312156128bc576128bb6122f4565b5b60008a013567ffffffffffffffff8111156128da576128d96122f9565b5b6128e68c828d01612798565b995099505060208a013567ffffffffffffffff811115612909576129086122f9565b5b6129158c828d016127ee565b975097505060408a013567ffffffffffffffff811115612938576129376122f9565b5b6129448c828d01612844565b955095505060606129578c828d01612418565b93505060806129688c828d01612418565b92505060a06129798c828d0161237d565b9150509295985092959850929598565b600080604083850312156129a05761299f6122f4565b5b60006129ae85828601612418565b92505060206129bf8582860161237d565b9150509250929050565b6129d28161231e565b82525050565b60006020820190506129ed60008301846129c9565b92915050565b60008060008060008060008060a0898b031215612a1357612a126122f4565b5b600089013567ffffffffffffffff811115612a3157612a306122f9565b5b612a3d8b828c01612798565b9850985050602089013567ffffffffffffffff811115612a6057612a5f6122f9565b5b612a6c8b828c016127ee565b9650965050604089013567ffffffffffffffff811115612a8f57612a8e6122f9565b5b612a9b8b828c01612844565b94509450506060612aae8b828c01612418565b9250506080612abf8b828c01612418565b9150509295985092959890939650565b612ad88161235c565b82525050565b6000602082019050612af36000830184612acf565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000612b368385612af9565b9350612b43838584612b0a565b612b4c83612b19565b840190509392505050565b600060a082019050612b6c60008301896129c9565b612b796020830188612acf565b8181036040830152612b8c818688612b2a565b9050612b9b6060830185612597565b612ba86080830184612acf565b979650505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612c20602f83612bb3565b9150612c2b82612bc4565b604082019050919050565b60006020820190508181036000830152612c4f81612c13565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cbf8261235c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cf257612cf1612c85565b5b600182019050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612d59602783612bb3565b9150612d6482612cfd565b604082019050919050565b60006020820190508181036000830152612d8881612d4c565b9050919050565b6000604082019050612da46000830185612acf565b612db16020830184612acf565b9392505050565b6000612dc38261235c565b9150612dce8361235c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e0357612e02612c85565b5b828201905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612e6a603183612bb3565b9150612e7582612e0e565b604082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b600060a082019050612eb560008301896129c9565b612ec26020830188612acf565b8181036040830152612ed5818688612b2a565b9050612ee46060830185612597565b612ef16080830184612597565b979650505050505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f58602183612bb3565b9150612f6382612efc565b604082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b600060208284031215612fa457612fa36122f4565b5b6000612fb284828501612347565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612fe757612fe6612fbb565b5b80840192508235915067ffffffffffffffff82111561300957613008612fc0565b5b60208301925060018202360383131561302557613024612fc5565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b6130518161231e565b82525050565b60006130638383613048565b60208301905092915050565b600061307e6020840184612347565b905092915050565b6000602082019050919050565b600061309f838561302d565b93506130aa8261303e565b8060005b858110156130e3576130c0828461306f565b6130ca8882613057565b97506130d583613086565b9250506001810190506130ae565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b600061311283856130f0565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561314557613144613101565b5b602083029250613156838584612b0a565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b600061319a838561317d565b93506131a7838584612b0a565b6131b083612b19565b840190509392505050565b60006131c884848461318e565b90509392505050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126131fd576131fc6131db565b5b83810192508235915060208301925067ffffffffffffffff821115613225576132246131d1565b5b60018202360384131561323b5761323a6131d6565b5b509250929050565b6000602082019050919050565b600061325c8385613162565b93508360208402850161326e84613173565b8060005b878110156132b457848403895261328982846131e0565b6132948682846131bb565b955061329f84613243565b935060208b019a505050600181019050613272565b50829750879450505050509392505050565b600060a08201905081810360008301526132e1818a8c613093565b905081810360208301526132f681888a613106565b9050818103604083015261330b818688613250565b905061331a6060830185612597565b6133276080830184612597565b9998505050505050505050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b6000613390602f83612bb3565b915061339b82613334565b604082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006134076017836133c6565b9150613412826133d1565b601782019050919050565b600081519050919050565b60005b8381101561344657808201518184015260208101905061342b565b83811115613455576000848401525b50505050565b60006134668261341d565b61347081856133c6565b9350613480818560208601613428565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006134c26011836133c6565b91506134cd8261348c565b601182019050919050565b60006134e3826133fa565b91506134ef828561345b565b91506134fa826134b5565b9150613506828461345b565b91508190509392505050565b600061351d8261341d565b6135278185612bb3565b9350613537818560208601613428565b61354081612b19565b840191505092915050565b600060208201905081810360008301526135658184613512565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b60006135c9602d83612bb3565b91506135d48261356d565b604082019050919050565b600060208201905081810360008301526135f8816135bc565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b600061365b602483612bb3565b9150613666826135ff565b604082019050919050565b6000602082019050818103600083015261368a8161364e565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b60006136ed602883612bb3565b91506136f882613691565b604082019050919050565b6000602082019050818103600083015261371c816136e0565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b600061377f603c83612bb3565b915061378a82613723565b604082019050919050565b600060208201905081810360008301526137ae81613772565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b6000613811602483612bb3565b915061381c826137b5565b604082019050919050565b6000602082019050818103600083015261384081613804565b9050919050565b600081905092915050565b600061385e8385613847565b935061386b838584612b0a565b82840190509392505050565b6000613884828486613852565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b60006138ec603183612bb3565b91506138f782613890565b604082019050919050565b6000602082019050818103600083015261391b816138df565b9050919050565b600060608201905061393760008301876129c9565b6139446020830186612acf565b8181036040830152613957818486612b2a565b905095945050505050565b600061396d8261235c565b91506139788361235c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139b1576139b0612c85565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006139f68261235c565b91506000821415613a0a57613a09612c85565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613a4b602083612bb3565b9150613a5682613a15565b602082019050919050565b60006020820190508181036000830152613a7a81613a3e565b9050919050565b6000613a8c8261235c565b9150613a978361235c565b925082821015613aaa57613aa9612c85565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212205147deed36644d196075dbd9ec89d3c49e83f30646e550127fcba4f605cc21db64736f6c634300080a0033", - "deployedBytecode": "0x6080604052600436106101fd5760003560e01c806379716e431161010d578063ba51a6df116100a0578063d45c44351161006f578063d45c4435146107af578063d547741f146107ec578063dc8452cd14610815578063e38335e514610840578063f3fc536d1461085c57610204565b8063ba51a6df146106f5578063c4d252f51461071e578063c63c4e9b14610747578063ca15c8731461077257610204565b80639010d07c116100dc5780639010d07c1461061357806391d1485414610650578063a217fddf1461068d578063b1c5f427146106b857610204565b806379716e43146105595780638065657f146105825780638f2a0bb0146105bf5780638f61f4f5146105e857610204565b80632ab0f529116101905780633b04850e1161015f5780633b04850e146104645780635037ec621461048d578063584b153e146104b657806359111070146104f35780636486aa511461051c57610204565b80632ab0f529146103985780632f2ff15d146103d557806331d50750146103fe57806336568abe1461043b57610204565b80630d3cf6fc116101cc5780630d3cf6fc146102d7578063134008d31461030257806313bc9f201461031e578063248a9ca31461035b57610204565b806301d5062a1461020957806301ffc9a71461023257806307bd02651461026f5780630c4ecab41461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b50610230600480360381019061022b919061242d565b610885565b005b34801561023e57600080fd5b5061025960048036038101906102549190612534565b610922565b604051610266919061257c565b60405180910390f35b34801561027b57600080fd5b5061028461099c565b60405161029191906125a6565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc91906125c1565b6109c0565b6040516102ce919061257c565b60405180910390f35b3480156102e357600080fd5b506102ec6109ef565b6040516102f991906125a6565b60405180910390f35b61031c60048036038101906103179190612601565b610a13565b005b34801561032a57600080fd5b506103456004803603810190610340919061269b565b610a93565b604051610352919061257c565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061269b565b610ab9565b60405161038f91906125a6565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061269b565b610ad8565b6040516103cc919061257c565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f791906125c1565b610aed565b005b34801561040a57600080fd5b506104256004803603810190610420919061269b565b610b16565b604051610432919061257c565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d91906125c1565b610b2a565b005b34801561047057600080fd5b5061048b6004803603810190610486919061271e565b610bad565b005b34801561049957600080fd5b506104b460048036038101906104af919061276b565b610c36565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061269b565b610ce9565b6040516104ea919061257c565b60405180910390f35b3480156104ff57600080fd5b5061051a6004803603810190610515919061271e565b610cfe565b005b34801561052857600080fd5b50610543600480360381019061053e919061269b565b610d87565b604051610550919061257c565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b919061269b565b610e94565b005b34801561058e57600080fd5b506105a960048036038101906105a49190612601565b610fd9565b6040516105b691906125a6565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e1919061289a565b611018565b005b3480156105f457600080fd5b506105fd6111cb565b60405161060a91906125a6565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612989565b6111ef565b60405161064791906129d8565b60405180910390f35b34801561065c57600080fd5b50610677600480360381019061067291906125c1565b61121e565b604051610684919061257c565b60405180910390f35b34801561069957600080fd5b506106a2611288565b6040516106af91906125a6565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da91906129f3565b61128f565b6040516106ec91906125a6565b60405180910390f35b34801561070157600080fd5b5061071c6004803603810190610717919061276b565b6112d4565b005b34801561072a57600080fd5b506107456004803603810190610740919061269b565b611387565b005b34801561075357600080fd5b5061075c611449565b6040516107699190612ade565b60405180910390f35b34801561077e57600080fd5b506107996004803603810190610794919061269b565b61144f565b6040516107a69190612ade565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d1919061269b565b611473565b6040516107e39190612ade565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e91906125c1565b611490565b005b34801561082157600080fd5b5061082a6114b9565b6040516108379190612ade565b60405180910390f35b61085a600480360381019061085591906129f3565b6114bf565b005b34801561086857600080fd5b50610883600480360381019061087e919061269b565b611655565b005b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16108b7816108b26118aa565b6118b2565b60006108c7898989898989610fd9565b90506108d3818461194f565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161090f96959493929190612b57565b60405180910390a3505050505050505050565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610995575061099482611a04565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610a3f81600061121e565b610a5557610a5481610a4f6118aa565b6118b2565b5b6000610a65888888888888610fd9565b9050610a718185611a7e565b610a808160008a8a8a8a611b67565b610a8981611c5f565b5050505050505050565b600080610a9f83611473565b9050600181118015610ab15750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b60006001610ae583611473565b149050919050565b610af682610ab9565b610b0781610b026118aa565b6118b2565b610b118383611cc3565b505050565b600080610b2283611473565b119050919050565b610b326118aa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612c36565b60405180910390fd5b610ba98282611cf7565b5050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610bd981600061121e565b610bef57610bee81610be96118aa565b6118b2565b5b60005b83839050811015610c3057610c1f848483818110610c1357610c12612c56565b5b90506020020135611655565b80610c2990612cb4565b9050610bf2565b50505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90612d6f565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610cd7929190612d8f565b60405180910390a18060048190555050565b60006001610cf683611473565b119050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610d2a81600061121e565b610d4057610d3f81610d3a6118aa565b6118b2565b5b60005b83839050811015610d8157610d70848483818110610d6457610d63612c56565b5b90506020020135610e94565b80610d7a90612cb4565b9050610d43565b50505050565b600080600090506000610db97fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361144f565b905060005b81811015610e8b57600360008681526020019081526020016000206000610e057fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63846111ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e6257600183610e5f9190612db8565b92505b600554831415610e785760019350505050610e8f565b8080610e8390612cb4565b915050610dbe565b5050505b919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610ec081600061121e565b610ed657610ed581610ed06118aa565b6118b2565b5b610edf82610ce9565b610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590612e80565b60405180910390fd5b60016003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda83604051610fcd91906125a6565b60405180910390a25050565b6000868686868686604051602001610ff696959493929190612ea0565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161104a816110456118aa565b6118b2565b878790508a8a905014611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990612f6e565b60405180910390fd5b858590508a8a9050146110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612f6e565b60405180910390fd5b60006110ec8b8b8b8b8b8b8b8b61128f565b90506110f8818461194f565b60005b8b8b90508110156111bd5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061113c5761113b612c56565b5b90506020020160208101906111519190612f8e565b8d8d8681811061116457611163612c56565b5b905060200201358c8c8781811061117e5761117d612c56565b5b90506020028101906111909190612fca565b8c8b6040516111a496959493929190612b57565b60405180910390a3806111b690612cb4565b90506110fb565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b60006112168260016000868152602001908152602001600020611d2b90919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600088888888888888886040516020016112b09897969594939291906132c6565b60405160208183030381529060405280519060200120905098975050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990612d6f565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e60055482604051611375929190612d8f565b60405180910390a18060058190555050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16113b9816113b46118aa565b6118b2565b6113c282610ce9565b611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906133a6565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b600061146c60016000848152602001908152602001600020611d45565b9050919050565b600060026000838152602001908152602001600020549050919050565b61149982610ab9565b6114aa816114a56118aa565b6118b2565b6114b48383611cf7565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636114eb81600061121e565b61150157611500816114fb6118aa565b6118b2565b5b868690508989905014611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090612f6e565b60405180910390fd5b848490508989905014611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890612f6e565b60405180910390fd5b60006115a38a8a8a8a8a8a8a8a61128f565b90506115af8185611a7e565b60005b8a8a905081101561163f5761162e82828d8d858181106115d5576115d4612c56565b5b90506020020160208101906115ea9190612f8e565b8c8c868181106115fd576115fc612c56565b5b905060200201358b8b8781811061161757611616612c56565b5b90506020028101906116299190612fca565b611b67565b8061163890612cb4565b90506115b2565b5061164981611c5f565b50505050505050505050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361168181600061121e565b61169757611696816116916118aa565b6118b2565b5b6116a082610ce9565b6116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690612e80565b60405180910390fd5b60006003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f9aec1a62b961581534d37fd62d35e3648f05a17b1f986eda1d1a9d97b14784068360405161178e91906125a6565b60405180910390a25050565b6117a4828261121e565b61187657600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061181b6118aa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006118a2836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611d5a565b905092915050565b600033905090565b6118bc828261121e565b61194b576118e18173ffffffffffffffffffffffffffffffffffffffff166014611dca565b6118ef8360001c6020611dca565b6040516020016119009291906134d8565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611942919061354b565b60405180910390fd5b5050565b61195882610b16565b15611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f906135df565b60405180910390fd5b6004548110156119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490613671565b60405180910390fd5b80426119e99190612db8565b60026000848152602001908152602001600020819055505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a775750611a7682612006565b5b9050919050565b611a8782610a93565b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90613703565b60405180910390fd5b611acf82610d87565b611b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0590613795565b60405180910390fd5b6000801b811480611b245750611b2381610ad8565b5b611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90613827565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff16848484604051611b91929190613877565b60006040518083038185875af1925050503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5050905080611c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0e90613902565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5887878787604051611c4e9493929190613922565b60405180910390a350505050505050565b611c6881610a93565b611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613703565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b611ccd828261179a565b611cf2816001600085815260200190815260200160002061187a90919063ffffffff16565b505050565b611d018282612070565b611d26816001600085815260200190815260200160002061215190919063ffffffff16565b505050565b6000611d3a8360000183612181565b60001c905092915050565b6000611d53826000016121ac565b9050919050565b6000611d6683836121bd565b611dbf578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611dc4565b600090505b92915050565b606060006002836002611ddd9190613962565b611de79190612db8565b67ffffffffffffffff811115611e0057611dff6139bc565b5b6040519080825280601f01601f191660200182016040528015611e325781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611e6a57611e69612c56565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611ece57611ecd612c56565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611f0e9190613962565b611f189190612db8565b90505b6001811115611fb8577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611f5a57611f59612c56565b5b1a60f81b828281518110611f7157611f70612c56565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611fb1906139eb565b9050611f1b565b5060008414611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390613a61565b60405180910390fd5b8091505092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61207a828261121e565b1561214d57600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506120f26118aa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612179836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6121e0565b905092915050565b600082600001828154811061219957612198612c56565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146122e85760006001826122129190613a81565b905060006001866000018054905061222a9190613a81565b905081811461229957600086600001828154811061224b5761224a612c56565b5b906000526020600020015490508087600001848154811061226f5761226e612c56565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806122ad576122ac613ab5565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506122ee565b60009150505b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612329826122fe565b9050919050565b6123398161231e565b811461234457600080fd5b50565b60008135905061235681612330565b92915050565b6000819050919050565b61236f8161235c565b811461237a57600080fd5b50565b60008135905061238c81612366565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126123b7576123b6612392565b5b8235905067ffffffffffffffff8111156123d4576123d3612397565b5b6020830191508360018202830111156123f0576123ef61239c565b5b9250929050565b6000819050919050565b61240a816123f7565b811461241557600080fd5b50565b60008135905061242781612401565b92915050565b600080600080600080600060c0888a03121561244c5761244b6122f4565b5b600061245a8a828b01612347565b975050602061246b8a828b0161237d565b965050604088013567ffffffffffffffff81111561248c5761248b6122f9565b5b6124988a828b016123a1565b955095505060606124ab8a828b01612418565b93505060806124bc8a828b01612418565b92505060a06124cd8a828b0161237d565b91505092959891949750929550565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612511816124dc565b811461251c57600080fd5b50565b60008135905061252e81612508565b92915050565b60006020828403121561254a576125496122f4565b5b60006125588482850161251f565b91505092915050565b60008115159050919050565b61257681612561565b82525050565b6000602082019050612591600083018461256d565b92915050565b6125a0816123f7565b82525050565b60006020820190506125bb6000830184612597565b92915050565b600080604083850312156125d8576125d76122f4565b5b60006125e685828601612418565b92505060206125f785828601612347565b9150509250929050565b60008060008060008060a0878903121561261e5761261d6122f4565b5b600061262c89828a01612347565b965050602061263d89828a0161237d565b955050604087013567ffffffffffffffff81111561265e5761265d6122f9565b5b61266a89828a016123a1565b9450945050606061267d89828a01612418565b925050608061268e89828a01612418565b9150509295509295509295565b6000602082840312156126b1576126b06122f4565b5b60006126bf84828501612418565b91505092915050565b60008083601f8401126126de576126dd612392565b5b8235905067ffffffffffffffff8111156126fb576126fa612397565b5b6020830191508360208202830111156127175761271661239c565b5b9250929050565b60008060208385031215612735576127346122f4565b5b600083013567ffffffffffffffff811115612753576127526122f9565b5b61275f858286016126c8565b92509250509250929050565b600060208284031215612781576127806122f4565b5b600061278f8482850161237d565b91505092915050565b60008083601f8401126127ae576127ad612392565b5b8235905067ffffffffffffffff8111156127cb576127ca612397565b5b6020830191508360208202830111156127e7576127e661239c565b5b9250929050565b60008083601f84011261280457612803612392565b5b8235905067ffffffffffffffff81111561282157612820612397565b5b60208301915083602082028301111561283d5761283c61239c565b5b9250929050565b60008083601f84011261285a57612859612392565b5b8235905067ffffffffffffffff81111561287757612876612397565b5b6020830191508360208202830111156128935761289261239c565b5b9250929050565b600080600080600080600080600060c08a8c0312156128bc576128bb6122f4565b5b60008a013567ffffffffffffffff8111156128da576128d96122f9565b5b6128e68c828d01612798565b995099505060208a013567ffffffffffffffff811115612909576129086122f9565b5b6129158c828d016127ee565b975097505060408a013567ffffffffffffffff811115612938576129376122f9565b5b6129448c828d01612844565b955095505060606129578c828d01612418565b93505060806129688c828d01612418565b92505060a06129798c828d0161237d565b9150509295985092959850929598565b600080604083850312156129a05761299f6122f4565b5b60006129ae85828601612418565b92505060206129bf8582860161237d565b9150509250929050565b6129d28161231e565b82525050565b60006020820190506129ed60008301846129c9565b92915050565b60008060008060008060008060a0898b031215612a1357612a126122f4565b5b600089013567ffffffffffffffff811115612a3157612a306122f9565b5b612a3d8b828c01612798565b9850985050602089013567ffffffffffffffff811115612a6057612a5f6122f9565b5b612a6c8b828c016127ee565b9650965050604089013567ffffffffffffffff811115612a8f57612a8e6122f9565b5b612a9b8b828c01612844565b94509450506060612aae8b828c01612418565b9250506080612abf8b828c01612418565b9150509295985092959890939650565b612ad88161235c565b82525050565b6000602082019050612af36000830184612acf565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000612b368385612af9565b9350612b43838584612b0a565b612b4c83612b19565b840190509392505050565b600060a082019050612b6c60008301896129c9565b612b796020830188612acf565b8181036040830152612b8c818688612b2a565b9050612b9b6060830185612597565b612ba86080830184612acf565b979650505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612c20602f83612bb3565b9150612c2b82612bc4565b604082019050919050565b60006020820190508181036000830152612c4f81612c13565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cbf8261235c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cf257612cf1612c85565b5b600182019050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612d59602783612bb3565b9150612d6482612cfd565b604082019050919050565b60006020820190508181036000830152612d8881612d4c565b9050919050565b6000604082019050612da46000830185612acf565b612db16020830184612acf565b9392505050565b6000612dc38261235c565b9150612dce8361235c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e0357612e02612c85565b5b828201905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612e6a603183612bb3565b9150612e7582612e0e565b604082019050919050565b60006020820190508181036000830152612e9981612e5d565b9050919050565b600060a082019050612eb560008301896129c9565b612ec26020830188612acf565b8181036040830152612ed5818688612b2a565b9050612ee46060830185612597565b612ef16080830184612597565b979650505050505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f58602183612bb3565b9150612f6382612efc565b604082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b600060208284031215612fa457612fa36122f4565b5b6000612fb284828501612347565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612fe757612fe6612fbb565b5b80840192508235915067ffffffffffffffff82111561300957613008612fc0565b5b60208301925060018202360383131561302557613024612fc5565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b6130518161231e565b82525050565b60006130638383613048565b60208301905092915050565b600061307e6020840184612347565b905092915050565b6000602082019050919050565b600061309f838561302d565b93506130aa8261303e565b8060005b858110156130e3576130c0828461306f565b6130ca8882613057565b97506130d583613086565b9250506001810190506130ae565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b600061311283856130f0565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561314557613144613101565b5b602083029250613156838584612b0a565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b600061319a838561317d565b93506131a7838584612b0a565b6131b083612b19565b840190509392505050565b60006131c884848461318e565b90509392505050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126131fd576131fc6131db565b5b83810192508235915060208301925067ffffffffffffffff821115613225576132246131d1565b5b60018202360384131561323b5761323a6131d6565b5b509250929050565b6000602082019050919050565b600061325c8385613162565b93508360208402850161326e84613173565b8060005b878110156132b457848403895261328982846131e0565b6132948682846131bb565b955061329f84613243565b935060208b019a505050600181019050613272565b50829750879450505050509392505050565b600060a08201905081810360008301526132e1818a8c613093565b905081810360208301526132f681888a613106565b9050818103604083015261330b818688613250565b905061331a6060830185612597565b6133276080830184612597565b9998505050505050505050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b6000613390602f83612bb3565b915061339b82613334565b604082019050919050565b600060208201905081810360008301526133bf81613383565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006134076017836133c6565b9150613412826133d1565b601782019050919050565b600081519050919050565b60005b8381101561344657808201518184015260208101905061342b565b83811115613455576000848401525b50505050565b60006134668261341d565b61347081856133c6565b9350613480818560208601613428565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006134c26011836133c6565b91506134cd8261348c565b601182019050919050565b60006134e3826133fa565b91506134ef828561345b565b91506134fa826134b5565b9150613506828461345b565b91508190509392505050565b600061351d8261341d565b6135278185612bb3565b9350613537818560208601613428565b61354081612b19565b840191505092915050565b600060208201905081810360008301526135658184613512565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b60006135c9602d83612bb3565b91506135d48261356d565b604082019050919050565b600060208201905081810360008301526135f8816135bc565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b600061365b602483612bb3565b9150613666826135ff565b604082019050919050565b6000602082019050818103600083015261368a8161364e565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b60006136ed602883612bb3565b91506136f882613691565b604082019050919050565b6000602082019050818103600083015261371c816136e0565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b600061377f603c83612bb3565b915061378a82613723565b604082019050919050565b600060208201905081810360008301526137ae81613772565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b6000613811602483612bb3565b915061381c826137b5565b604082019050919050565b6000602082019050818103600083015261384081613804565b9050919050565b600081905092915050565b600061385e8385613847565b935061386b838584612b0a565b82840190509392505050565b6000613884828486613852565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b60006138ec603183612bb3565b91506138f782613890565b604082019050919050565b6000602082019050818103600083015261391b816138df565b9050919050565b600060608201905061393760008301876129c9565b6139446020830186612acf565b8181036040830152613957818486612b2a565b905095945050505050565b600061396d8261235c565b91506139788361235c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139b1576139b0612c85565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006139f68261235c565b91506000821415613a0a57613a09612c85565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613a4b602083612bb3565b9150613a5682613a15565b602082019050919050565b60006020820190508181036000830152613a7a81613a3e565b9050919050565b6000613a8c8261235c565b9150613a978361235c565b925082821015613aaa57613aa9612c85565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212205147deed36644d196075dbd9ec89d3c49e83f30646e550127fcba4f605cc21db64736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"confirmers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CallExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"CallScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CONFIRM_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"}],\"name\":\"changeDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"confirmTransactionBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"executeBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperationBatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"revokeConfirmationBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"scheduleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"CallExecuted(bytes32,uint256,address,uint256,bytes)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"},\"CallScheduled(bytes32,uint256,address,uint256,bytes,bytes32,uint256)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"},\"RequirementChange(uint256,uint256)\":{\"details\":\"Emitted when the number of required confimations is modified.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'proposer' role.\"},\"changeDelay(uint256)\":{\"details\":\"Changes the minimum wallet duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the wallet itself. This can only be achieved by scheduling and later executing an operation where the wallet is the target and the data is the ABI-encoded call to this function.\"},\"changeRequirement(uint256)\":{\"details\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\",\"params\":{\"_required\":\"Number of required confirmations.\"}},\"confirmTransaction(bytes32)\":{\"details\":\"Allows an executor to confirm a transaction. Requirements - the caller must have the 'executor' role.\"},\"confirmTransactionBatch(bytes32[])\":{\"details\":\"Allows an executor to confirm multiple transactions.\"},\"constructor\":{\"details\":\"Initializes the contract with a given `minDelay`.\"},\"execute(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.\"},\"executeBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a single transaction.\"},\"hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeConfirmation(bytes32)\":{\"details\":\"Allows an executor to revoke a confirmation for a transaction. Requirements - the caller must have the 'executor' role.\"},\"revokeConfirmationBatch(bytes32[])\":{\"details\":\"Allows an executor to revoke multiple confirmations for a transaction.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"schedule(address,uint256,bytes,bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.\"},\"scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"MultiSigWallet with timelocker\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/BEMultiSigWallet.sol\":\"BEMultiSigWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/core/BEMultiSigWallet.sol\":{\"keccak256\":\"0x358ae0b66d948bef6874c213927825030ee1110c7124315475470bf7b716d0cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d89b721b1036bbd2ca76715b6afb25762f361c04f9b2fa9682d4dbb7d1abb14\",\"dweb:/ipfs/QmaZUr7LdfCfEwgpPGrFMfFFoNUvTWugR9tz2nUuTntR9k\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200463f3803806200463f8339818101604052810190620000379190620008b5565b620000697f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5806200037460201b60201c565b620000bb7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200037460201b60201c565b6200010d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200037460201b60201c565b6200015f7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200037460201b60201c565b620001a07f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca562000194620003d760201b60201c565b620003df60201b60201c565b620001d27f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca530620003df60201b60201c565b60005b835181101562000242576200022e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc18583815181106200021a576200021962000984565b5b6020026020010151620003df60201b60201c565b806200023a90620009e2565b9050620001d5565b5060005b8251811015620002b3576200029f7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f8483815181106200028b576200028a62000984565b5b6020026020010151620003df60201b60201c565b80620002ab90620009e2565b905062000246565b5060005b81518110156200032457620003107fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63838381518110620002fc57620002fb62000984565b5b6020026020010151620003df60201b60201c565b806200031c90620009e2565b9050620002b7565b50836004819055507f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560006004546040516200036292919062000a8e565b60405180910390a15050505062000abb565b60006200038783620003f560201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b620003f182826200041460201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b6200042b82826200045c60201b620017f41760201c565b6200045781600160008581526020019081526020016000206200054d60201b620018d41790919060201c565b505050565b6200046e82826200058560201b60201c565b6200054957600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004ee620003d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006200057d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620005ef60201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200060383836200066960201b60201c565b6200065e57826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000663565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620006b581620006a0565b8114620006c157600080fd5b50565b600081519050620006d581620006aa565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200072b82620006e0565b810181811067ffffffffffffffff821117156200074d576200074c620006f1565b5b80604052505050565b6000620007626200068c565b905062000770828262000720565b919050565b600067ffffffffffffffff821115620007935762000792620006f1565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007d682620007a9565b9050919050565b620007e881620007c9565b8114620007f457600080fd5b50565b6000815190506200080881620007dd565b92915050565b6000620008256200081f8462000775565b62000756565b905080838252602082019050602084028301858111156200084b576200084a620007a4565b5b835b81811015620008785780620008638882620007f7565b8452602084019350506020810190506200084d565b5050509392505050565b600082601f8301126200089a5762000899620006db565b5b8151620008ac8482602086016200080e565b91505092915050565b60008060008060808587031215620008d257620008d162000696565b5b6000620008e287828801620006c4565b945050602085015167ffffffffffffffff8111156200090657620009056200069b565b5b620009148782880162000882565b935050604085015167ffffffffffffffff8111156200093857620009376200069b565b5b620009468782880162000882565b925050606085015167ffffffffffffffff8111156200096a57620009696200069b565b5b620009788782880162000882565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009ef82620006a0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000a255762000a24620009b3565b5b600182019050919050565b6000819050919050565b6000819050919050565b600062000a6562000a5f62000a598462000a30565b62000a3a565b620006a0565b9050919050565b62000a778162000a44565b82525050565b62000a8881620006a0565b82525050565b600060408201905062000aa5600083018562000a6c565b62000ab4602083018462000a7d565b9392505050565b613b748062000acb6000396000f3fe6080604052600436106102085760003560e01c806379716e4311610118578063c3a6b147116100a0578063d45c44351161006f578063d45c4435146107e5578063d547741f14610822578063dc8452cd1461084b578063e38335e514610876578063f3fc536d146108925761020f565b8063c3a6b14714610729578063c4d252f514610754578063c63c4e9b1461077d578063ca15c873146107a85761020f565b80639010d07c116100e75780639010d07c1461061e57806391d148541461065b578063a217fddf14610698578063b1c5f427146106c3578063ba51a6df146107005761020f565b806379716e43146105645780638065657f1461058d5780638f2a0bb0146105ca5780638f61f4f5146105f35761020f565b80632ab0f5291161019b5780633b04850e1161016a5780633b04850e1461046f5780635037ec6214610498578063584b153e146104c157806359111070146104fe5780636486aa51146105275761020f565b80632ab0f529146103a35780632f2ff15d146103e057806331d507501461040957806336568abe146104465761020f565b80630d3cf6fc116101d75780630d3cf6fc146102e2578063134008d31461030d57806313bc9f2014610329578063248a9ca3146103665761020f565b806301d5062a1461021457806301ffc9a71461023d57806307bd02651461027a5780630c4ecab4146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612487565b6108bb565b005b34801561024957600080fd5b50610264600480360381019061025f919061258e565b610958565b60405161027191906125d6565b60405180910390f35b34801561028657600080fd5b5061028f6109d2565b60405161029c9190612600565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c7919061261b565b6109f6565b6040516102d991906125d6565b60405180910390f35b3480156102ee57600080fd5b506102f7610a25565b6040516103049190612600565b60405180910390f35b6103276004803603810190610322919061265b565b610a49565b005b34801561033557600080fd5b50610350600480360381019061034b91906126f5565b610ac9565b60405161035d91906125d6565b60405180910390f35b34801561037257600080fd5b5061038d600480360381019061038891906126f5565b610aef565b60405161039a9190612600565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906126f5565b610b0e565b6040516103d791906125d6565b60405180910390f35b3480156103ec57600080fd5b506104076004803603810190610402919061261b565b610b23565b005b34801561041557600080fd5b50610430600480360381019061042b91906126f5565b610b4c565b60405161043d91906125d6565b60405180910390f35b34801561045257600080fd5b5061046d6004803603810190610468919061261b565b610b60565b005b34801561047b57600080fd5b5061049660048036038101906104919190612778565b610be3565b005b3480156104a457600080fd5b506104bf60048036038101906104ba91906127c5565b610c6c565b005b3480156104cd57600080fd5b506104e860048036038101906104e391906126f5565b610d1f565b6040516104f591906125d6565b60405180910390f35b34801561050a57600080fd5b5061052560048036038101906105209190612778565b610d34565b005b34801561053357600080fd5b5061054e600480360381019061054991906126f5565b610dbd565b60405161055b91906125d6565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906126f5565b610eca565b005b34801561059957600080fd5b506105b460048036038101906105af919061265b565b61100f565b6040516105c19190612600565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec91906128f4565b61104e565b005b3480156105ff57600080fd5b50610608611201565b6040516106159190612600565b60405180910390f35b34801561062a57600080fd5b50610645600480360381019061064091906129e3565b611225565b6040516106529190612a32565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d919061261b565b611254565b60405161068f91906125d6565b60405180910390f35b3480156106a457600080fd5b506106ad6112be565b6040516106ba9190612600565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612a4d565b6112c5565b6040516106f79190612600565b60405180910390f35b34801561070c57600080fd5b50610727600480360381019061072291906127c5565b61130a565b005b34801561073557600080fd5b5061073e6113bd565b60405161074b9190612600565b60405180910390f35b34801561076057600080fd5b5061077b600480360381019061077691906126f5565b6113e1565b005b34801561078957600080fd5b506107926114a3565b60405161079f9190612b38565b60405180910390f35b3480156107b457600080fd5b506107cf60048036038101906107ca91906126f5565b6114a9565b6040516107dc9190612b38565b60405180910390f35b3480156107f157600080fd5b5061080c600480360381019061080791906126f5565b6114cd565b6040516108199190612b38565b60405180910390f35b34801561082e57600080fd5b506108496004803603810190610844919061261b565b6114ea565b005b34801561085757600080fd5b50610860611513565b60405161086d9190612b38565b60405180910390f35b610890600480360381019061088b9190612a4d565b611519565b005b34801561089e57600080fd5b506108b960048036038101906108b491906126f5565b6116af565b005b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16108ed816108e8611904565b61190c565b60006108fd89898989898961100f565b905061090981846119a9565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161094596959493929190612bb1565b60405180910390a3505050505050505050565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109cb57506109ca82611a5e565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610a75816000611254565b610a8b57610a8a81610a85611904565b61190c565b5b6000610a9b88888888888861100f565b9050610aa78185611ad8565b610ab68160008a8a8a8a611bc1565b610abf81611cb9565b5050505050505050565b600080610ad5836114cd565b9050600181118015610ae75750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b60006001610b1b836114cd565b149050919050565b610b2c82610aef565b610b3d81610b38611904565b61190c565b610b478383611d1d565b505050565b600080610b58836114cd565b119050919050565b610b68611904565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc90612c90565b60405180910390fd5b610bdf8282611d51565b5050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610c0f816000611254565b610c2557610c2481610c1f611904565b61190c565b5b60005b83839050811015610c6657610c55848483818110610c4957610c48612cb0565b5b905060200201356116af565b80610c5f90612d0e565b9050610c28565b50505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190612dc9565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610d0d929190612de9565b60405180910390a18060048190555050565b60006001610d2c836114cd565b119050919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610d60816000611254565b610d7657610d7581610d70611904565b61190c565b5b60005b83839050811015610db757610da6848483818110610d9a57610d99612cb0565b5b90506020020135610eca565b80610db090612d0e565b9050610d79565b50505050565b600080600090506000610def7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636114a9565b905060005b81811015610ec157600360008681526020019081526020016000206000610e3b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6384611225565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e9857600183610e959190612e12565b92505b600554831415610eae5760019350505050610ec5565b8080610eb990612d0e565b915050610df4565b5050505b919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610ef6816000611254565b610f0c57610f0b81610f06611904565b61190c565b5b610f1582610d1f565b610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612eda565b60405180910390fd5b60016003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda836040516110039190612600565b60405180910390a25050565b600086868686868660405160200161102c96959493929190612efa565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16110808161107b611904565b61190c565b878790508a8a9050146110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612fc8565b60405180910390fd5b858590508a8a905014611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612fc8565b60405180910390fd5b60006111228b8b8b8b8b8b8b8b6112c5565b905061112e81846119a9565b60005b8b8b90508110156111f35780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061117257611171612cb0565b5b90506020020160208101906111879190612fe8565b8d8d8681811061119a57611199612cb0565b5b905060200201358c8c878181106111b4576111b3612cb0565b5b90506020028101906111c69190613024565b8c8b6040516111da96959493929190612bb1565b60405180910390a3806111ec90612d0e565b9050611131565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b600061124c8260016000868152602001908152602001600020611d8590919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600088888888888888886040516020016112e6989796959493929190613320565b60405160208183030381529060405280519060200120905098975050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612dc9565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e600554826040516113ab929190612de9565b60405180910390a18060058190555050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f81565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16114138161140e611904565b61190c565b61141c82610d1f565b61145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290613400565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b60006114c660016000848152602001908152602001600020611d9f565b9050919050565b600060026000838152602001908152602001600020549050919050565b6114f382610aef565b611504816114ff611904565b61190c565b61150e8383611d51565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611545816000611254565b61155b5761155a81611555611904565b61190c565b5b8686905089899050146115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612fc8565b60405180910390fd5b8484905089899050146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e290612fc8565b60405180910390fd5b60006115fd8a8a8a8a8a8a8a8a6112c5565b90506116098185611ad8565b60005b8a8a90508110156116995761168882828d8d8581811061162f5761162e612cb0565b5b90506020020160208101906116449190612fe8565b8c8c8681811061165757611656612cb0565b5b905060200201358b8b8781811061167157611670612cb0565b5b90506020028101906116839190613024565b611bc1565b8061169290612d0e565b905061160c565b506116a381611cb9565b50505050505050505050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f6116db816000611254565b6116f1576116f0816116eb611904565b61190c565b5b6116fa82610d1f565b611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090612eda565b60405180910390fd5b60006003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f9aec1a62b961581534d37fd62d35e3648f05a17b1f986eda1d1a9d97b1478406836040516117e89190612600565b60405180910390a25050565b6117fe8282611254565b6118d057600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611875611904565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006118fc836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611db4565b905092915050565b600033905090565b6119168282611254565b6119a55761193b8173ffffffffffffffffffffffffffffffffffffffff166014611e24565b6119498360001c6020611e24565b60405160200161195a929190613532565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c91906135a5565b60405180910390fd5b5050565b6119b282610b4c565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613639565b60405180910390fd5b600454811015611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e906136cb565b60405180910390fd5b8042611a439190612e12565b60026000848152602001908152602001600020819055505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ad15750611ad082612060565b5b9050919050565b611ae182610ac9565b611b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b179061375d565b60405180910390fd5b611b2982610dbd565b611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906137ef565b60405180910390fd5b6000801b811480611b7e5750611b7d81610b0e565b5b611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb490613881565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff16848484604051611beb9291906138d1565b60006040518083038185875af1925050503d8060008114611c28576040519150601f19603f3d011682016040523d82523d6000602084013e611c2d565b606091505b5050905080611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c689061395c565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5887878787604051611ca8949392919061397c565b60405180910390a350505050505050565b611cc281610ac9565b611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf89061375d565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b611d2782826117f4565b611d4c81600160008581526020019081526020016000206118d490919063ffffffff16565b505050565b611d5b82826120ca565b611d8081600160008581526020019081526020016000206121ab90919063ffffffff16565b505050565b6000611d9483600001836121db565b60001c905092915050565b6000611dad82600001612206565b9050919050565b6000611dc08383612217565b611e19578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611e1e565b600090505b92915050565b606060006002836002611e3791906139bc565b611e419190612e12565b67ffffffffffffffff811115611e5a57611e59613a16565b5b6040519080825280601f01601f191660200182016040528015611e8c5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611ec457611ec3612cb0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f2857611f27612cb0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611f6891906139bc565b611f729190612e12565b90505b6001811115612012577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611fb457611fb3612cb0565b5b1a60f81b828281518110611fcb57611fca612cb0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061200b90613a45565b9050611f75565b5060008414612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d90613abb565b60405180910390fd5b8091505092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6120d48282611254565b156121a757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061214c611904565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006121d3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61223a565b905092915050565b60008260000182815481106121f3576121f2612cb0565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461234257600060018261226c9190613adb565b90506000600186600001805490506122849190613adb565b90508181146122f35760008660000182815481106122a5576122a4612cb0565b5b90600052602060002001549050808760000184815481106122c9576122c8612cb0565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061230757612306613b0f565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612348565b60009150505b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061238382612358565b9050919050565b61239381612378565b811461239e57600080fd5b50565b6000813590506123b08161238a565b92915050565b6000819050919050565b6123c9816123b6565b81146123d457600080fd5b50565b6000813590506123e6816123c0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612411576124106123ec565b5b8235905067ffffffffffffffff81111561242e5761242d6123f1565b5b60208301915083600182028301111561244a576124496123f6565b5b9250929050565b6000819050919050565b61246481612451565b811461246f57600080fd5b50565b6000813590506124818161245b565b92915050565b600080600080600080600060c0888a0312156124a6576124a561234e565b5b60006124b48a828b016123a1565b97505060206124c58a828b016123d7565b965050604088013567ffffffffffffffff8111156124e6576124e5612353565b5b6124f28a828b016123fb565b955095505060606125058a828b01612472565b93505060806125168a828b01612472565b92505060a06125278a828b016123d7565b91505092959891949750929550565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361234e565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6125fa81612451565b82525050565b600060208201905061261560008301846125f1565b92915050565b600080604083850312156126325761263161234e565b5b600061264085828601612472565b9250506020612651858286016123a1565b9150509250929050565b60008060008060008060a087890312156126785761267761234e565b5b600061268689828a016123a1565b965050602061269789828a016123d7565b955050604087013567ffffffffffffffff8111156126b8576126b7612353565b5b6126c489828a016123fb565b945094505060606126d789828a01612472565b92505060806126e889828a01612472565b9150509295509295509295565b60006020828403121561270b5761270a61234e565b5b600061271984828501612472565b91505092915050565b60008083601f840112612738576127376123ec565b5b8235905067ffffffffffffffff811115612755576127546123f1565b5b602083019150836020820283011115612771576127706123f6565b5b9250929050565b6000806020838503121561278f5761278e61234e565b5b600083013567ffffffffffffffff8111156127ad576127ac612353565b5b6127b985828601612722565b92509250509250929050565b6000602082840312156127db576127da61234e565b5b60006127e9848285016123d7565b91505092915050565b60008083601f840112612808576128076123ec565b5b8235905067ffffffffffffffff811115612825576128246123f1565b5b602083019150836020820283011115612841576128406123f6565b5b9250929050565b60008083601f84011261285e5761285d6123ec565b5b8235905067ffffffffffffffff81111561287b5761287a6123f1565b5b602083019150836020820283011115612897576128966123f6565b5b9250929050565b60008083601f8401126128b4576128b36123ec565b5b8235905067ffffffffffffffff8111156128d1576128d06123f1565b5b6020830191508360208202830111156128ed576128ec6123f6565b5b9250929050565b600080600080600080600080600060c08a8c0312156129165761291561234e565b5b60008a013567ffffffffffffffff81111561293457612933612353565b5b6129408c828d016127f2565b995099505060208a013567ffffffffffffffff81111561296357612962612353565b5b61296f8c828d01612848565b975097505060408a013567ffffffffffffffff81111561299257612991612353565b5b61299e8c828d0161289e565b955095505060606129b18c828d01612472565b93505060806129c28c828d01612472565b92505060a06129d38c828d016123d7565b9150509295985092959850929598565b600080604083850312156129fa576129f961234e565b5b6000612a0885828601612472565b9250506020612a19858286016123d7565b9150509250929050565b612a2c81612378565b82525050565b6000602082019050612a476000830184612a23565b92915050565b60008060008060008060008060a0898b031215612a6d57612a6c61234e565b5b600089013567ffffffffffffffff811115612a8b57612a8a612353565b5b612a978b828c016127f2565b9850985050602089013567ffffffffffffffff811115612aba57612ab9612353565b5b612ac68b828c01612848565b9650965050604089013567ffffffffffffffff811115612ae957612ae8612353565b5b612af58b828c0161289e565b94509450506060612b088b828c01612472565b9250506080612b198b828c01612472565b9150509295985092959890939650565b612b32816123b6565b82525050565b6000602082019050612b4d6000830184612b29565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000612b908385612b53565b9350612b9d838584612b64565b612ba683612b73565b840190509392505050565b600060a082019050612bc66000830189612a23565b612bd36020830188612b29565b8181036040830152612be6818688612b84565b9050612bf560608301856125f1565b612c026080830184612b29565b979650505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612c7a602f83612c0d565b9150612c8582612c1e565b604082019050919050565b60006020820190508181036000830152612ca981612c6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d19826123b6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4c57612d4b612cdf565b5b600182019050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612db3602783612c0d565b9150612dbe82612d57565b604082019050919050565b60006020820190508181036000830152612de281612da6565b9050919050565b6000604082019050612dfe6000830185612b29565b612e0b6020830184612b29565b9392505050565b6000612e1d826123b6565b9150612e28836123b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e5d57612e5c612cdf565b5b828201905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612ec4603183612c0d565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b600060a082019050612f0f6000830189612a23565b612f1c6020830188612b29565b8181036040830152612f2f818688612b84565b9050612f3e60608301856125f1565b612f4b60808301846125f1565b979650505050505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fb2602183612c0d565b9150612fbd82612f56565b604082019050919050565b60006020820190508181036000830152612fe181612fa5565b9050919050565b600060208284031215612ffe57612ffd61234e565b5b600061300c848285016123a1565b91505092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261304157613040613015565b5b80840192508235915067ffffffffffffffff8211156130635761306261301a565b5b60208301925060018202360383131561307f5761307e61301f565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b6130ab81612378565b82525050565b60006130bd83836130a2565b60208301905092915050565b60006130d860208401846123a1565b905092915050565b6000602082019050919050565b60006130f98385613087565b935061310482613098565b8060005b8581101561313d5761311a82846130c9565b61312488826130b1565b975061312f836130e0565b925050600181019050613108565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b600061316c838561314a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561319f5761319e61315b565b5b6020830292506131b0838584612b64565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b60006131f483856131d7565b9350613201838584612b64565b61320a83612b73565b840190509392505050565b60006132228484846131e8565b90509392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261325757613256613235565b5b83810192508235915060208301925067ffffffffffffffff82111561327f5761327e61322b565b5b60018202360384131561329557613294613230565b5b509250929050565b6000602082019050919050565b60006132b683856131bc565b9350836020840285016132c8846131cd565b8060005b8781101561330e5784840389526132e3828461323a565b6132ee868284613215565b95506132f98461329d565b935060208b019a5050506001810190506132cc565b50829750879450505050509392505050565b600060a082019050818103600083015261333b818a8c6130ed565b9050818103602083015261335081888a613160565b905081810360408301526133658186886132aa565b905061337460608301856125f1565b61338160808301846125f1565b9998505050505050505050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b60006133ea602f83612c0d565b91506133f58261338e565b604082019050919050565b60006020820190508181036000830152613419816133dd565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613461601783613420565b915061346c8261342b565b601782019050919050565b600081519050919050565b60005b838110156134a0578082015181840152602081019050613485565b838111156134af576000848401525b50505050565b60006134c082613477565b6134ca8185613420565b93506134da818560208601613482565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061351c601183613420565b9150613527826134e6565b601182019050919050565b600061353d82613454565b915061354982856134b5565b91506135548261350f565b915061356082846134b5565b91508190509392505050565b600061357782613477565b6135818185612c0d565b9350613591818560208601613482565b61359a81612b73565b840191505092915050565b600060208201905081810360008301526135bf818461356c565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b6000613623602d83612c0d565b915061362e826135c7565b604082019050919050565b6000602082019050818103600083015261365281613616565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b60006136b5602483612c0d565b91506136c082613659565b604082019050919050565b600060208201905081810360008301526136e4816136a8565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b6000613747602883612c0d565b9150613752826136eb565b604082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b60006137d9603c83612c0d565b91506137e48261377d565b604082019050919050565b60006020820190508181036000830152613808816137cc565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b600061386b602483612c0d565b91506138768261380f565b604082019050919050565b6000602082019050818103600083015261389a8161385e565b9050919050565b600081905092915050565b60006138b883856138a1565b93506138c5838584612b64565b82840190509392505050565b60006138de8284866138ac565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b6000613946603183612c0d565b9150613951826138ea565b604082019050919050565b6000602082019050818103600083015261397581613939565b9050919050565b60006060820190506139916000830187612a23565b61399e6020830186612b29565b81810360408301526139b1818486612b84565b905095945050505050565b60006139c7826123b6565b91506139d2836123b6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a0b57613a0a612cdf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000613a50826123b6565b91506000821415613a6457613a63612cdf565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613aa5602083612c0d565b9150613ab082613a6f565b602082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b6000613ae6826123b6565b9150613af1836123b6565b925082821015613b0457613b03612cdf565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220eb3cb1f8d4673fc857f3277a1f01592c463580ff2f55853cb7b6fbcc1f29357264736f6c634300080a0033", + "deployedBytecode": "0x6080604052600436106102085760003560e01c806379716e4311610118578063c3a6b147116100a0578063d45c44351161006f578063d45c4435146107e5578063d547741f14610822578063dc8452cd1461084b578063e38335e514610876578063f3fc536d146108925761020f565b8063c3a6b14714610729578063c4d252f514610754578063c63c4e9b1461077d578063ca15c873146107a85761020f565b80639010d07c116100e75780639010d07c1461061e57806391d148541461065b578063a217fddf14610698578063b1c5f427146106c3578063ba51a6df146107005761020f565b806379716e43146105645780638065657f1461058d5780638f2a0bb0146105ca5780638f61f4f5146105f35761020f565b80632ab0f5291161019b5780633b04850e1161016a5780633b04850e1461046f5780635037ec6214610498578063584b153e146104c157806359111070146104fe5780636486aa51146105275761020f565b80632ab0f529146103a35780632f2ff15d146103e057806331d507501461040957806336568abe146104465761020f565b80630d3cf6fc116101d75780630d3cf6fc146102e2578063134008d31461030d57806313bc9f2014610329578063248a9ca3146103665761020f565b806301d5062a1461021457806301ffc9a71461023d57806307bd02651461027a5780630c4ecab4146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612487565b6108bb565b005b34801561024957600080fd5b50610264600480360381019061025f919061258e565b610958565b60405161027191906125d6565b60405180910390f35b34801561028657600080fd5b5061028f6109d2565b60405161029c9190612600565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c7919061261b565b6109f6565b6040516102d991906125d6565b60405180910390f35b3480156102ee57600080fd5b506102f7610a25565b6040516103049190612600565b60405180910390f35b6103276004803603810190610322919061265b565b610a49565b005b34801561033557600080fd5b50610350600480360381019061034b91906126f5565b610ac9565b60405161035d91906125d6565b60405180910390f35b34801561037257600080fd5b5061038d600480360381019061038891906126f5565b610aef565b60405161039a9190612600565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906126f5565b610b0e565b6040516103d791906125d6565b60405180910390f35b3480156103ec57600080fd5b506104076004803603810190610402919061261b565b610b23565b005b34801561041557600080fd5b50610430600480360381019061042b91906126f5565b610b4c565b60405161043d91906125d6565b60405180910390f35b34801561045257600080fd5b5061046d6004803603810190610468919061261b565b610b60565b005b34801561047b57600080fd5b5061049660048036038101906104919190612778565b610be3565b005b3480156104a457600080fd5b506104bf60048036038101906104ba91906127c5565b610c6c565b005b3480156104cd57600080fd5b506104e860048036038101906104e391906126f5565b610d1f565b6040516104f591906125d6565b60405180910390f35b34801561050a57600080fd5b5061052560048036038101906105209190612778565b610d34565b005b34801561053357600080fd5b5061054e600480360381019061054991906126f5565b610dbd565b60405161055b91906125d6565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906126f5565b610eca565b005b34801561059957600080fd5b506105b460048036038101906105af919061265b565b61100f565b6040516105c19190612600565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec91906128f4565b61104e565b005b3480156105ff57600080fd5b50610608611201565b6040516106159190612600565b60405180910390f35b34801561062a57600080fd5b50610645600480360381019061064091906129e3565b611225565b6040516106529190612a32565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d919061261b565b611254565b60405161068f91906125d6565b60405180910390f35b3480156106a457600080fd5b506106ad6112be565b6040516106ba9190612600565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612a4d565b6112c5565b6040516106f79190612600565b60405180910390f35b34801561070c57600080fd5b50610727600480360381019061072291906127c5565b61130a565b005b34801561073557600080fd5b5061073e6113bd565b60405161074b9190612600565b60405180910390f35b34801561076057600080fd5b5061077b600480360381019061077691906126f5565b6113e1565b005b34801561078957600080fd5b506107926114a3565b60405161079f9190612b38565b60405180910390f35b3480156107b457600080fd5b506107cf60048036038101906107ca91906126f5565b6114a9565b6040516107dc9190612b38565b60405180910390f35b3480156107f157600080fd5b5061080c600480360381019061080791906126f5565b6114cd565b6040516108199190612b38565b60405180910390f35b34801561082e57600080fd5b506108496004803603810190610844919061261b565b6114ea565b005b34801561085757600080fd5b50610860611513565b60405161086d9190612b38565b60405180910390f35b610890600480360381019061088b9190612a4d565b611519565b005b34801561089e57600080fd5b506108b960048036038101906108b491906126f5565b6116af565b005b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16108ed816108e8611904565b61190c565b60006108fd89898989898961100f565b905061090981846119a9565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161094596959493929190612bb1565b60405180910390a3505050505050505050565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109cb57506109ca82611a5e565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610a75816000611254565b610a8b57610a8a81610a85611904565b61190c565b5b6000610a9b88888888888861100f565b9050610aa78185611ad8565b610ab68160008a8a8a8a611bc1565b610abf81611cb9565b5050505050505050565b600080610ad5836114cd565b9050600181118015610ae75750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b60006001610b1b836114cd565b149050919050565b610b2c82610aef565b610b3d81610b38611904565b61190c565b610b478383611d1d565b505050565b600080610b58836114cd565b119050919050565b610b68611904565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc90612c90565b60405180910390fd5b610bdf8282611d51565b5050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610c0f816000611254565b610c2557610c2481610c1f611904565b61190c565b5b60005b83839050811015610c6657610c55848483818110610c4957610c48612cb0565b5b905060200201356116af565b80610c5f90612d0e565b9050610c28565b50505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190612dc9565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610d0d929190612de9565b60405180910390a18060048190555050565b60006001610d2c836114cd565b119050919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610d60816000611254565b610d7657610d7581610d70611904565b61190c565b5b60005b83839050811015610db757610da6848483818110610d9a57610d99612cb0565b5b90506020020135610eca565b80610db090612d0e565b9050610d79565b50505050565b600080600090506000610def7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636114a9565b905060005b81811015610ec157600360008681526020019081526020016000206000610e3b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6384611225565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e9857600183610e959190612e12565b92505b600554831415610eae5760019350505050610ec5565b8080610eb990612d0e565b915050610df4565b5050505b919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610ef6816000611254565b610f0c57610f0b81610f06611904565b61190c565b5b610f1582610d1f565b610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612eda565b60405180910390fd5b60016003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda836040516110039190612600565b60405180910390a25050565b600086868686868660405160200161102c96959493929190612efa565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16110808161107b611904565b61190c565b878790508a8a9050146110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612fc8565b60405180910390fd5b858590508a8a905014611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612fc8565b60405180910390fd5b60006111228b8b8b8b8b8b8b8b6112c5565b905061112e81846119a9565b60005b8b8b90508110156111f35780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e8581811061117257611171612cb0565b5b90506020020160208101906111879190612fe8565b8d8d8681811061119a57611199612cb0565b5b905060200201358c8c878181106111b4576111b3612cb0565b5b90506020028101906111c69190613024565b8c8b6040516111da96959493929190612bb1565b60405180910390a3806111ec90612d0e565b9050611131565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b600061124c8260016000868152602001908152602001600020611d8590919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b600088888888888888886040516020016112e6989796959493929190613320565b60405160208183030381529060405280519060200120905098975050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612dc9565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e600554826040516113ab929190612de9565b60405180910390a18060058190555050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f81565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16114138161140e611904565b61190c565b61141c82610d1f565b61145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290613400565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b60006114c660016000848152602001908152602001600020611d9f565b9050919050565b600060026000838152602001908152602001600020549050919050565b6114f382610aef565b611504816114ff611904565b61190c565b61150e8383611d51565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611545816000611254565b61155b5761155a81611555611904565b61190c565b5b8686905089899050146115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612fc8565b60405180910390fd5b8484905089899050146115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e290612fc8565b60405180910390fd5b60006115fd8a8a8a8a8a8a8a8a6112c5565b90506116098185611ad8565b60005b8a8a90508110156116995761168882828d8d8581811061162f5761162e612cb0565b5b90506020020160208101906116449190612fe8565b8c8c8681811061165757611656612cb0565b5b905060200201358b8b8781811061167157611670612cb0565b5b90506020028101906116839190613024565b611bc1565b8061169290612d0e565b905061160c565b506116a381611cb9565b50505050505050505050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f6116db816000611254565b6116f1576116f0816116eb611904565b61190c565b5b6116fa82610d1f565b611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090612eda565b60405180910390fd5b60006003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f9aec1a62b961581534d37fd62d35e3648f05a17b1f986eda1d1a9d97b1478406836040516117e89190612600565b60405180910390a25050565b6117fe8282611254565b6118d057600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611875611904565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006118fc836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611db4565b905092915050565b600033905090565b6119168282611254565b6119a55761193b8173ffffffffffffffffffffffffffffffffffffffff166014611e24565b6119498360001c6020611e24565b60405160200161195a929190613532565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c91906135a5565b60405180910390fd5b5050565b6119b282610b4c565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613639565b60405180910390fd5b600454811015611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e906136cb565b60405180910390fd5b8042611a439190612e12565b60026000848152602001908152602001600020819055505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ad15750611ad082612060565b5b9050919050565b611ae182610ac9565b611b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b179061375d565b60405180910390fd5b611b2982610dbd565b611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906137ef565b60405180910390fd5b6000801b811480611b7e5750611b7d81610b0e565b5b611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb490613881565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff16848484604051611beb9291906138d1565b60006040518083038185875af1925050503d8060008114611c28576040519150601f19603f3d011682016040523d82523d6000602084013e611c2d565b606091505b5050905080611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c689061395c565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5887878787604051611ca8949392919061397c565b60405180910390a350505050505050565b611cc281610ac9565b611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf89061375d565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b611d2782826117f4565b611d4c81600160008581526020019081526020016000206118d490919063ffffffff16565b505050565b611d5b82826120ca565b611d8081600160008581526020019081526020016000206121ab90919063ffffffff16565b505050565b6000611d9483600001836121db565b60001c905092915050565b6000611dad82600001612206565b9050919050565b6000611dc08383612217565b611e19578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611e1e565b600090505b92915050565b606060006002836002611e3791906139bc565b611e419190612e12565b67ffffffffffffffff811115611e5a57611e59613a16565b5b6040519080825280601f01601f191660200182016040528015611e8c5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611ec457611ec3612cb0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f2857611f27612cb0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611f6891906139bc565b611f729190612e12565b90505b6001811115612012577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611fb457611fb3612cb0565b5b1a60f81b828281518110611fcb57611fca612cb0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061200b90613a45565b9050611f75565b5060008414612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d90613abb565b60405180910390fd5b8091505092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6120d48282611254565b156121a757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061214c611904565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006121d3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61223a565b905092915050565b60008260000182815481106121f3576121f2612cb0565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461234257600060018261226c9190613adb565b90506000600186600001805490506122849190613adb565b90508181146122f35760008660000182815481106122a5576122a4612cb0565b5b90600052602060002001549050808760000184815481106122c9576122c8612cb0565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061230757612306613b0f565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612348565b60009150505b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061238382612358565b9050919050565b61239381612378565b811461239e57600080fd5b50565b6000813590506123b08161238a565b92915050565b6000819050919050565b6123c9816123b6565b81146123d457600080fd5b50565b6000813590506123e6816123c0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612411576124106123ec565b5b8235905067ffffffffffffffff81111561242e5761242d6123f1565b5b60208301915083600182028301111561244a576124496123f6565b5b9250929050565b6000819050919050565b61246481612451565b811461246f57600080fd5b50565b6000813590506124818161245b565b92915050565b600080600080600080600060c0888a0312156124a6576124a561234e565b5b60006124b48a828b016123a1565b97505060206124c58a828b016123d7565b965050604088013567ffffffffffffffff8111156124e6576124e5612353565b5b6124f28a828b016123fb565b955095505060606125058a828b01612472565b93505060806125168a828b01612472565b92505060a06125278a828b016123d7565b91505092959891949750929550565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61256b81612536565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b6000602082840312156125a4576125a361234e565b5b60006125b284828501612579565b91505092915050565b60008115159050919050565b6125d0816125bb565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b6125fa81612451565b82525050565b600060208201905061261560008301846125f1565b92915050565b600080604083850312156126325761263161234e565b5b600061264085828601612472565b9250506020612651858286016123a1565b9150509250929050565b60008060008060008060a087890312156126785761267761234e565b5b600061268689828a016123a1565b965050602061269789828a016123d7565b955050604087013567ffffffffffffffff8111156126b8576126b7612353565b5b6126c489828a016123fb565b945094505060606126d789828a01612472565b92505060806126e889828a01612472565b9150509295509295509295565b60006020828403121561270b5761270a61234e565b5b600061271984828501612472565b91505092915050565b60008083601f840112612738576127376123ec565b5b8235905067ffffffffffffffff811115612755576127546123f1565b5b602083019150836020820283011115612771576127706123f6565b5b9250929050565b6000806020838503121561278f5761278e61234e565b5b600083013567ffffffffffffffff8111156127ad576127ac612353565b5b6127b985828601612722565b92509250509250929050565b6000602082840312156127db576127da61234e565b5b60006127e9848285016123d7565b91505092915050565b60008083601f840112612808576128076123ec565b5b8235905067ffffffffffffffff811115612825576128246123f1565b5b602083019150836020820283011115612841576128406123f6565b5b9250929050565b60008083601f84011261285e5761285d6123ec565b5b8235905067ffffffffffffffff81111561287b5761287a6123f1565b5b602083019150836020820283011115612897576128966123f6565b5b9250929050565b60008083601f8401126128b4576128b36123ec565b5b8235905067ffffffffffffffff8111156128d1576128d06123f1565b5b6020830191508360208202830111156128ed576128ec6123f6565b5b9250929050565b600080600080600080600080600060c08a8c0312156129165761291561234e565b5b60008a013567ffffffffffffffff81111561293457612933612353565b5b6129408c828d016127f2565b995099505060208a013567ffffffffffffffff81111561296357612962612353565b5b61296f8c828d01612848565b975097505060408a013567ffffffffffffffff81111561299257612991612353565b5b61299e8c828d0161289e565b955095505060606129b18c828d01612472565b93505060806129c28c828d01612472565b92505060a06129d38c828d016123d7565b9150509295985092959850929598565b600080604083850312156129fa576129f961234e565b5b6000612a0885828601612472565b9250506020612a19858286016123d7565b9150509250929050565b612a2c81612378565b82525050565b6000602082019050612a476000830184612a23565b92915050565b60008060008060008060008060a0898b031215612a6d57612a6c61234e565b5b600089013567ffffffffffffffff811115612a8b57612a8a612353565b5b612a978b828c016127f2565b9850985050602089013567ffffffffffffffff811115612aba57612ab9612353565b5b612ac68b828c01612848565b9650965050604089013567ffffffffffffffff811115612ae957612ae8612353565b5b612af58b828c0161289e565b94509450506060612b088b828c01612472565b9250506080612b198b828c01612472565b9150509295985092959890939650565b612b32816123b6565b82525050565b6000602082019050612b4d6000830184612b29565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000612b908385612b53565b9350612b9d838584612b64565b612ba683612b73565b840190509392505050565b600060a082019050612bc66000830189612a23565b612bd36020830188612b29565b8181036040830152612be6818688612b84565b9050612bf560608301856125f1565b612c026080830184612b29565b979650505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612c7a602f83612c0d565b9150612c8582612c1e565b604082019050919050565b60006020820190508181036000830152612ca981612c6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d19826123b6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4c57612d4b612cdf565b5b600182019050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612db3602783612c0d565b9150612dbe82612d57565b604082019050919050565b60006020820190508181036000830152612de281612da6565b9050919050565b6000604082019050612dfe6000830185612b29565b612e0b6020830184612b29565b9392505050565b6000612e1d826123b6565b9150612e28836123b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e5d57612e5c612cdf565b5b828201905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612ec4603183612c0d565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b600060a082019050612f0f6000830189612a23565b612f1c6020830188612b29565b8181036040830152612f2f818688612b84565b9050612f3e60608301856125f1565b612f4b60808301846125f1565b979650505050505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fb2602183612c0d565b9150612fbd82612f56565b604082019050919050565b60006020820190508181036000830152612fe181612fa5565b9050919050565b600060208284031215612ffe57612ffd61234e565b5b600061300c848285016123a1565b91505092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261304157613040613015565b5b80840192508235915067ffffffffffffffff8211156130635761306261301a565b5b60208301925060018202360383131561307f5761307e61301f565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b6130ab81612378565b82525050565b60006130bd83836130a2565b60208301905092915050565b60006130d860208401846123a1565b905092915050565b6000602082019050919050565b60006130f98385613087565b935061310482613098565b8060005b8581101561313d5761311a82846130c9565b61312488826130b1565b975061312f836130e0565b925050600181019050613108565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b600061316c838561314a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561319f5761319e61315b565b5b6020830292506131b0838584612b64565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b60006131f483856131d7565b9350613201838584612b64565b61320a83612b73565b840190509392505050565b60006132228484846131e8565b90509392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261325757613256613235565b5b83810192508235915060208301925067ffffffffffffffff82111561327f5761327e61322b565b5b60018202360384131561329557613294613230565b5b509250929050565b6000602082019050919050565b60006132b683856131bc565b9350836020840285016132c8846131cd565b8060005b8781101561330e5784840389526132e3828461323a565b6132ee868284613215565b95506132f98461329d565b935060208b019a5050506001810190506132cc565b50829750879450505050509392505050565b600060a082019050818103600083015261333b818a8c6130ed565b9050818103602083015261335081888a613160565b905081810360408301526133658186886132aa565b905061337460608301856125f1565b61338160808301846125f1565b9998505050505050505050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b60006133ea602f83612c0d565b91506133f58261338e565b604082019050919050565b60006020820190508181036000830152613419816133dd565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000613461601783613420565b915061346c8261342b565b601782019050919050565b600081519050919050565b60005b838110156134a0578082015181840152602081019050613485565b838111156134af576000848401525b50505050565b60006134c082613477565b6134ca8185613420565b93506134da818560208601613482565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061351c601183613420565b9150613527826134e6565b601182019050919050565b600061353d82613454565b915061354982856134b5565b91506135548261350f565b915061356082846134b5565b91508190509392505050565b600061357782613477565b6135818185612c0d565b9350613591818560208601613482565b61359a81612b73565b840191505092915050565b600060208201905081810360008301526135bf818461356c565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b6000613623602d83612c0d565b915061362e826135c7565b604082019050919050565b6000602082019050818103600083015261365281613616565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b60006136b5602483612c0d565b91506136c082613659565b604082019050919050565b600060208201905081810360008301526136e4816136a8565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b6000613747602883612c0d565b9150613752826136eb565b604082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b60006137d9603c83612c0d565b91506137e48261377d565b604082019050919050565b60006020820190508181036000830152613808816137cc565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b600061386b602483612c0d565b91506138768261380f565b604082019050919050565b6000602082019050818103600083015261389a8161385e565b9050919050565b600081905092915050565b60006138b883856138a1565b93506138c5838584612b64565b82840190509392505050565b60006138de8284866138ac565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b6000613946603183612c0d565b9150613951826138ea565b604082019050919050565b6000602082019050818103600083015261397581613939565b9050919050565b60006060820190506139916000830187612a23565b61399e6020830186612b29565b81810360408301526139b1818486612b84565b905095945050505050565b60006139c7826123b6565b91506139d2836123b6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a0b57613a0a612cdf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000613a50826123b6565b91506000821415613a6457613a63612cdf565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613aa5602083612c0d565b9150613ab082613a6f565b602082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b6000613ae6826123b6565b9150613af1836123b6565b925082821015613b0457613b03612cdf565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220eb3cb1f8d4673fc857f3277a1f01592c463580ff2f55853cb7b6fbcc1f29357264736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [ { "ast": { "nodeType": "YulBlock", - "src": "0:6282:10", + "src": "0:6642:10", "statements": [ { "body": { @@ -2930,12 +2949,12 @@ { "body": { "nodeType": "YulBlock", - "src": "3808:908:10", + "src": "3850:1226:10", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3854:83:10", + "src": "3897:83:10", "statements": [ { "expression": { @@ -2943,13 +2962,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "3856:77:10" + "src": "3899:77:10" }, "nodeType": "YulFunctionCall", - "src": "3856:79:10" + "src": "3899:79:10" }, "nodeType": "YulExpressionStatement", - "src": "3856:79:10" + "src": "3899:79:10" } ] }, @@ -2960,52 +2979,52 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3829:7:10" + "src": "3871:7:10" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3838:9:10" + "src": "3880:9:10" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3825:3:10" + "src": "3867:3:10" }, "nodeType": "YulFunctionCall", - "src": "3825:23:10" + "src": "3867:23:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3850:2:10", + "src": "3892:3:10", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "3821:3:10" + "src": "3863:3:10" }, "nodeType": "YulFunctionCall", - "src": "3821:32:10" + "src": "3863:33:10" }, "nodeType": "YulIf", - "src": "3818:119:10" + "src": "3860:120:10" }, { "nodeType": "YulBlock", - "src": "3947:128:10", + "src": "3990:128:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "3962:15:10", + "src": "4005:15:10", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "3976:1:10", + "src": "4019:1:10", "type": "", "value": "0" }, @@ -3013,14 +3032,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "3966:6:10", + "src": "4009:6:10", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "3991:74:10", + "src": "4034:74:10", "value": { "arguments": [ { @@ -3028,41 +3047,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4037:9:10" + "src": "4080:9:10" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4048:6:10" + "src": "4091:6:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4033:3:10" + "src": "4076:3:10" }, "nodeType": "YulFunctionCall", - "src": "4033:22:10" + "src": "4076:22:10" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4057:7:10" + "src": "4100:7:10" } ], "functionName": { "name": "abi_decode_t_uint256_fromMemory", "nodeType": "YulIdentifier", - "src": "4001:31:10" + "src": "4044:31:10" }, "nodeType": "YulFunctionCall", - "src": "4001:64:10" + "src": "4044:64:10" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3991:6:10" + "src": "4034:6:10" } ] } @@ -3070,11 +3089,11 @@ }, { "nodeType": "YulBlock", - "src": "4085:307:10", + "src": "4128:307:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4100:39:10", + "src": "4143:39:10", "value": { "arguments": [ { @@ -3082,12 +3101,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4124:9:10" + "src": "4167:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4135:2:10", + "src": "4178:2:10", "type": "", "value": "32" } @@ -3095,25 +3114,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4120:3:10" + "src": "4163:3:10" }, "nodeType": "YulFunctionCall", - "src": "4120:18:10" + "src": "4163:18:10" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "4114:5:10" + "src": "4157:5:10" }, "nodeType": "YulFunctionCall", - "src": "4114:25:10" + "src": "4157:25:10" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "4104:6:10", + "src": "4147:6:10", "type": "" } ] @@ -3121,7 +3140,7 @@ { "body": { "nodeType": "YulBlock", - "src": "4186:83:10", + "src": "4229:83:10", "statements": [ { "expression": { @@ -3129,13 +3148,13 @@ "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulIdentifier", - "src": "4188:77:10" + "src": "4231:77:10" }, "nodeType": "YulFunctionCall", - "src": "4188:79:10" + "src": "4231:79:10" }, "nodeType": "YulExpressionStatement", - "src": "4188:79:10" + "src": "4231:79:10" } ] }, @@ -3144,12 +3163,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "4158:6:10" + "src": "4201:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4166:18:10", + "src": "4209:18:10", "type": "", "value": "0xffffffffffffffff" } @@ -3157,17 +3176,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "4155:2:10" + "src": "4198:2:10" }, "nodeType": "YulFunctionCall", - "src": "4155:30:10" + "src": "4198:30:10" }, "nodeType": "YulIf", - "src": "4152:117:10" + "src": "4195:117:10" }, { "nodeType": "YulAssignment", - "src": "4283:99:10", + "src": "4326:99:10", "value": { "arguments": [ { @@ -3175,41 +3194,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4354:9:10" + "src": "4397:9:10" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4365:6:10" + "src": "4408:6:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4350:3:10" + "src": "4393:3:10" }, "nodeType": "YulFunctionCall", - "src": "4350:22:10" + "src": "4393:22:10" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4374:7:10" + "src": "4417:7:10" } ], "functionName": { "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", "nodeType": "YulIdentifier", - "src": "4293:56:10" + "src": "4336:56:10" }, "nodeType": "YulFunctionCall", - "src": "4293:89:10" + "src": "4336:89:10" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "4283:6:10" + "src": "4326:6:10" } ] } @@ -3217,11 +3236,11 @@ }, { "nodeType": "YulBlock", - "src": "4402:307:10", + "src": "4445:307:10", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4417:39:10", + "src": "4460:39:10", "value": { "arguments": [ { @@ -3229,12 +3248,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4441:9:10" + "src": "4484:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4452:2:10", + "src": "4495:2:10", "type": "", "value": "64" } @@ -3242,25 +3261,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4437:3:10" + "src": "4480:3:10" }, "nodeType": "YulFunctionCall", - "src": "4437:18:10" + "src": "4480:18:10" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "4431:5:10" + "src": "4474:5:10" }, "nodeType": "YulFunctionCall", - "src": "4431:25:10" + "src": "4474:25:10" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "4421:6:10", + "src": "4464:6:10", "type": "" } ] @@ -3268,7 +3287,7 @@ { "body": { "nodeType": "YulBlock", - "src": "4503:83:10", + "src": "4546:83:10", "statements": [ { "expression": { @@ -3276,13 +3295,13 @@ "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulIdentifier", - "src": "4505:77:10" + "src": "4548:77:10" }, "nodeType": "YulFunctionCall", - "src": "4505:79:10" + "src": "4548:79:10" }, "nodeType": "YulExpressionStatement", - "src": "4505:79:10" + "src": "4548:79:10" } ] }, @@ -3291,12 +3310,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "4475:6:10" + "src": "4518:6:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4483:18:10", + "src": "4526:18:10", "type": "", "value": "0xffffffffffffffff" } @@ -3304,17 +3323,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "4472:2:10" + "src": "4515:2:10" }, "nodeType": "YulFunctionCall", - "src": "4472:30:10" + "src": "4515:30:10" }, "nodeType": "YulIf", - "src": "4469:117:10" + "src": "4512:117:10" }, { "nodeType": "YulAssignment", - "src": "4600:99:10", + "src": "4643:99:10", "value": { "arguments": [ { @@ -3322,41 +3341,188 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4671:9:10" + "src": "4714:9:10" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4682:6:10" + "src": "4725:6:10" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4667:3:10" + "src": "4710:3:10" }, "nodeType": "YulFunctionCall", - "src": "4667:22:10" + "src": "4710:22:10" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4691:7:10" + "src": "4734:7:10" } ], "functionName": { "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", "nodeType": "YulIdentifier", - "src": "4610:56:10" + "src": "4653:56:10" }, "nodeType": "YulFunctionCall", - "src": "4610:89:10" + "src": "4653:89:10" }, "variableNames": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "4600:6:10" + "src": "4643:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4762:307:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4777:39:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4801:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4812:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4797:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4797:18:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4791:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "4791:25:10" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4781:6:10", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4863:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4865:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "4865:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "4865:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4835:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4843:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4832:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "4832:30:10" + }, + "nodeType": "YulIf", + "src": "4829:117:10" + }, + { + "nodeType": "YulAssignment", + "src": "4960:99:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5031:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5042:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5027:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5027:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5051:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "4970:56:10" + }, + "nodeType": "YulFunctionCall", + "src": "4970:89:10" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4960:6:10" } ] } @@ -3364,19 +3530,19 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory", + "name": "abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3762:9:10", + "src": "3796:9:10", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "3773:7:10", + "src": "3807:7:10", "type": "" } ], @@ -3384,28 +3550,34 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "3785:6:10", + "src": "3819:6:10", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "3793:6:10", + "src": "3827:6:10", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "3801:6:10", + "src": "3835:6:10", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3843:6:10", "type": "" } ], - "src": "3647:1069:10" + "src": "3647:1429:10" }, { "body": { "nodeType": "YulBlock", - "src": "4750:152:10", + "src": "5110:152:10", "statements": [ { "expression": { @@ -3413,14 +3585,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4767:1:10", + "src": "5127:1:10", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4770:77:10", + "src": "5130:77:10", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -3428,13 +3600,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4760:6:10" + "src": "5120:6:10" }, "nodeType": "YulFunctionCall", - "src": "4760:88:10" + "src": "5120:88:10" }, "nodeType": "YulExpressionStatement", - "src": "4760:88:10" + "src": "5120:88:10" }, { "expression": { @@ -3442,14 +3614,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4864:1:10", + "src": "5224:1:10", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4867:4:10", + "src": "5227:4:10", "type": "", "value": "0x32" } @@ -3457,13 +3629,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4857:6:10" + "src": "5217:6:10" }, "nodeType": "YulFunctionCall", - "src": "4857:15:10" + "src": "5217:15:10" }, "nodeType": "YulExpressionStatement", - "src": "4857:15:10" + "src": "5217:15:10" }, { "expression": { @@ -3471,14 +3643,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4888:1:10", + "src": "5248:1:10", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4891:4:10", + "src": "5251:4:10", "type": "", "value": "0x24" } @@ -3486,24 +3658,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4881:6:10" + "src": "5241:6:10" }, "nodeType": "YulFunctionCall", - "src": "4881:15:10" + "src": "5241:15:10" }, "nodeType": "YulExpressionStatement", - "src": "4881:15:10" + "src": "5241:15:10" } ] }, "name": "panic_error_0x32", "nodeType": "YulFunctionDefinition", - "src": "4722:180:10" + "src": "5082:180:10" }, { "body": { "nodeType": "YulBlock", - "src": "4936:152:10", + "src": "5296:152:10", "statements": [ { "expression": { @@ -3511,14 +3683,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4953:1:10", + "src": "5313:1:10", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4956:77:10", + "src": "5316:77:10", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -3526,13 +3698,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "4946:6:10" + "src": "5306:6:10" }, "nodeType": "YulFunctionCall", - "src": "4946:88:10" + "src": "5306:88:10" }, "nodeType": "YulExpressionStatement", - "src": "4946:88:10" + "src": "5306:88:10" }, { "expression": { @@ -3540,14 +3712,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "5050:1:10", + "src": "5410:1:10", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5053:4:10", + "src": "5413:4:10", "type": "", "value": "0x11" } @@ -3555,13 +3727,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5043:6:10" + "src": "5403:6:10" }, "nodeType": "YulFunctionCall", - "src": "5043:15:10" + "src": "5403:15:10" }, "nodeType": "YulExpressionStatement", - "src": "5043:15:10" + "src": "5403:15:10" }, { "expression": { @@ -3569,14 +3741,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "5074:1:10", + "src": "5434:1:10", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5077:4:10", + "src": "5437:4:10", "type": "", "value": "0x24" } @@ -3584,56 +3756,56 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "5067:6:10" + "src": "5427:6:10" }, "nodeType": "YulFunctionCall", - "src": "5067:15:10" + "src": "5427:15:10" }, "nodeType": "YulExpressionStatement", - "src": "5067:15:10" + "src": "5427:15:10" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", - "src": "4908:180:10" + "src": "5268:180:10" }, { "body": { "nodeType": "YulBlock", - "src": "5137:190:10", + "src": "5497:190:10", "statements": [ { "nodeType": "YulAssignment", - "src": "5147:33:10", + "src": "5507:33:10", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "5174:5:10" + "src": "5534:5:10" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "5156:17:10" + "src": "5516:17:10" }, "nodeType": "YulFunctionCall", - "src": "5156:24:10" + "src": "5516:24:10" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "5147:5:10" + "src": "5507:5:10" } ] }, { "body": { "nodeType": "YulBlock", - "src": "5270:22:10", + "src": "5630:22:10", "statements": [ { "expression": { @@ -3641,13 +3813,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "5272:16:10" + "src": "5632:16:10" }, "nodeType": "YulFunctionCall", - "src": "5272:18:10" + "src": "5632:18:10" }, "nodeType": "YulExpressionStatement", - "src": "5272:18:10" + "src": "5632:18:10" } ] }, @@ -3656,12 +3828,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "5195:5:10" + "src": "5555:5:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5202:66:10", + "src": "5562:66:10", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } @@ -3669,28 +3841,28 @@ "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "5192:2:10" + "src": "5552:2:10" }, "nodeType": "YulFunctionCall", - "src": "5192:77:10" + "src": "5552:77:10" }, "nodeType": "YulIf", - "src": "5189:103:10" + "src": "5549:103:10" }, { "nodeType": "YulAssignment", - "src": "5301:20:10", + "src": "5661:20:10", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "5312:5:10" + "src": "5672:5:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5319:1:10", + "src": "5679:1:10", "type": "", "value": "1" } @@ -3698,16 +3870,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5308:3:10" + "src": "5668:3:10" }, "nodeType": "YulFunctionCall", - "src": "5308:13:10" + "src": "5668:13:10" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "5301:3:10" + "src": "5661:3:10" } ] } @@ -3719,7 +3891,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "5123:5:10", + "src": "5483:5:10", "type": "" } ], @@ -3727,30 +3899,30 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "5133:3:10", + "src": "5493:3:10", "type": "" } ], - "src": "5094:233:10" + "src": "5454:233:10" }, { "body": { "nodeType": "YulBlock", - "src": "5386:32:10", + "src": "5746:32:10", "statements": [ { "nodeType": "YulAssignment", - "src": "5396:16:10", + "src": "5756:16:10", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "5407:5:10" + "src": "5767:5:10" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "5396:7:10" + "src": "5756:7:10" } ] } @@ -3762,7 +3934,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "5368:5:10", + "src": "5728:5:10", "type": "" } ], @@ -3770,30 +3942,30 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "5378:7:10", + "src": "5738:7:10", "type": "" } ], - "src": "5333:85:10" + "src": "5693:85:10" }, { "body": { "nodeType": "YulBlock", - "src": "5456:28:10", + "src": "5816:28:10", "statements": [ { "nodeType": "YulAssignment", - "src": "5466:12:10", + "src": "5826:12:10", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "5473:5:10" + "src": "5833:5:10" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "5466:3:10" + "src": "5826:3:10" } ] } @@ -3805,7 +3977,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "5442:5:10", + "src": "5802:5:10", "type": "" } ], @@ -3813,20 +3985,20 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "5452:3:10", + "src": "5812:3:10", "type": "" } ], - "src": "5424:60:10" + "src": "5784:60:10" }, { "body": { "nodeType": "YulBlock", - "src": "5558:90:10", + "src": "5918:90:10", "statements": [ { "nodeType": "YulAssignment", - "src": "5568:74:10", + "src": "5928:74:10", "value": { "arguments": [ { @@ -3836,40 +4008,40 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "5634:5:10" + "src": "5994:5:10" } ], "functionName": { "name": "cleanup_t_rational_0_by_1", "nodeType": "YulIdentifier", - "src": "5608:25:10" + "src": "5968:25:10" }, "nodeType": "YulFunctionCall", - "src": "5608:32:10" + "src": "5968:32:10" } ], "functionName": { "name": "identity", "nodeType": "YulIdentifier", - "src": "5599:8:10" + "src": "5959:8:10" }, "nodeType": "YulFunctionCall", - "src": "5599:42:10" + "src": "5959:42:10" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "5581:17:10" + "src": "5941:17:10" }, "nodeType": "YulFunctionCall", - "src": "5581:61:10" + "src": "5941:61:10" }, "variableNames": [ { "name": "converted", "nodeType": "YulIdentifier", - "src": "5568:9:10" + "src": "5928:9:10" } ] } @@ -3881,7 +4053,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "5538:5:10", + "src": "5898:5:10", "type": "" } ], @@ -3889,16 +4061,16 @@ { "name": "converted", "nodeType": "YulTypedName", - "src": "5548:9:10", + "src": "5908:9:10", "type": "" } ], - "src": "5490:158:10" + "src": "5850:158:10" }, { "body": { "nodeType": "YulBlock", - "src": "5727:74:10", + "src": "6087:74:10", "statements": [ { "expression": { @@ -3906,35 +4078,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5744:3:10" + "src": "6104:3:10" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "5788:5:10" + "src": "6148:5:10" } ], "functionName": { "name": "convert_t_rational_0_by_1_to_t_uint256", "nodeType": "YulIdentifier", - "src": "5749:38:10" + "src": "6109:38:10" }, "nodeType": "YulFunctionCall", - "src": "5749:45:10" + "src": "6109:45:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5737:6:10" + "src": "6097:6:10" }, "nodeType": "YulFunctionCall", - "src": "5737:58:10" + "src": "6097:58:10" }, "nodeType": "YulExpressionStatement", - "src": "5737:58:10" + "src": "6097:58:10" } ] }, @@ -3944,22 +4116,22 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "5715:5:10", + "src": "6075:5:10", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "5722:3:10", + "src": "6082:3:10", "type": "" } ], - "src": "5654:147:10" + "src": "6014:147:10" }, { "body": { "nodeType": "YulBlock", - "src": "5872:53:10", + "src": "6232:53:10", "statements": [ { "expression": { @@ -3967,35 +4139,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "5889:3:10" + "src": "6249:3:10" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "5912:5:10" + "src": "6272:5:10" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "5894:17:10" + "src": "6254:17:10" }, "nodeType": "YulFunctionCall", - "src": "5894:24:10" + "src": "6254:24:10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "5882:6:10" + "src": "6242:6:10" }, "nodeType": "YulFunctionCall", - "src": "5882:37:10" + "src": "6242:37:10" }, "nodeType": "YulExpressionStatement", - "src": "5882:37:10" + "src": "6242:37:10" } ] }, @@ -4005,37 +4177,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "5860:5:10", + "src": "6220:5:10", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "5867:3:10", + "src": "6227:3:10", "type": "" } ], - "src": "5807:118:10" + "src": "6167:118:10" }, { "body": { "nodeType": "YulBlock", - "src": "6065:214:10", + "src": "6425:214:10", "statements": [ { "nodeType": "YulAssignment", - "src": "6075:26:10", + "src": "6435:26:10", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6087:9:10" + "src": "6447:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6098:2:10", + "src": "6458:2:10", "type": "", "value": "64" } @@ -4043,16 +4215,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6083:3:10" + "src": "6443:3:10" }, "nodeType": "YulFunctionCall", - "src": "6083:18:10" + "src": "6443:18:10" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "6075:4:10" + "src": "6435:4:10" } ] }, @@ -4062,19 +4234,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "6163:6:10" + "src": "6523:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6176:9:10" + "src": "6536:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6187:1:10", + "src": "6547:1:10", "type": "", "value": "0" } @@ -4082,22 +4254,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6172:3:10" + "src": "6532:3:10" }, "nodeType": "YulFunctionCall", - "src": "6172:17:10" + "src": "6532:17:10" } ], "functionName": { "name": "abi_encode_t_rational_0_by_1_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "6111:51:10" + "src": "6471:51:10" }, "nodeType": "YulFunctionCall", - "src": "6111:79:10" + "src": "6471:79:10" }, "nodeType": "YulExpressionStatement", - "src": "6111:79:10" + "src": "6471:79:10" }, { "expression": { @@ -4105,19 +4277,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "6244:6:10" + "src": "6604:6:10" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6257:9:10" + "src": "6617:9:10" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6268:2:10", + "src": "6628:2:10", "type": "", "value": "32" } @@ -4125,22 +4297,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6253:3:10" + "src": "6613:3:10" }, "nodeType": "YulFunctionCall", - "src": "6253:18:10" + "src": "6613:18:10" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "6200:43:10" + "src": "6560:43:10" }, "nodeType": "YulFunctionCall", - "src": "6200:72:10" + "src": "6560:72:10" }, "nodeType": "YulExpressionStatement", - "src": "6200:72:10" + "src": "6560:72:10" } ] }, @@ -4150,19 +4322,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "6029:9:10", + "src": "6389:9:10", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "6041:6:10", + "src": "6401:6:10", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "6049:6:10", + "src": "6409:6:10", "type": "" } ], @@ -4170,15 +4342,15 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "6060:4:10", + "src": "6420:4:10", "type": "" } ], - "src": "5931:348:10" + "src": "6291:348:10" } ] }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_0_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function cleanup_t_rational_0_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_0_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_0_by_1(value)))\n }\n\n function abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_0_by_1_to_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_rational_0_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", "id": 10, "language": "Yul", "name": "#utility.yul" @@ -24541,9 +24713,9 @@ "name": "#utility.yul" } ], - "sourceMap": "168:12420:9:-:0;;;1901:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2010:55;275:32;;2010:13;;;:55;;:::i;:::-;2071:49;351:26;275:32;2071:13;;;:49;;:::i;:::-;2126;421:26;275:32;2126:13;;;:49;;:::i;:::-;2220:45;275:32;2252:12;:10;;;:12;;:::i;:::-;2220:10;;;:45;;:::i;:::-;2271:46;275:32;2311:4;2271:10;;;:46;;:::i;:::-;2355:9;2350:101;2374:9;:16;2370:1;:20;2350:101;;;2405:39;351:26;2431:9;2441:1;2431:12;;;;;;;;:::i;:::-;;;;;;;;2405:10;;;:39;;:::i;:::-;2392:3;;;;:::i;:::-;;;2350:101;;;;2488:9;2483:101;2507:9;:16;2503:1;:20;2483:101;;;2538:39;421:26;2564:9;2574:1;2564:12;;;;;;;;:::i;:::-;;;;;;;;2538:10;;;:39;;:::i;:::-;2525:3;;;;:::i;:::-;;;2483:101;;;;2601:9;2590:8;:20;;;;2621:27;2636:1;2639:8;;2621:27;;;;;;;:::i;:::-;;;;;;;;1901:752;;;168:12420;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;6257:110:0:-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;;;;;:31;;;;:::i;:::-;;1978:166;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;;;:50;;:::i;:::-;7698:57;;7612:150;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:404:8:-;1760:4;1781:21;1791:3;1796:5;1781:9;;;:21;;:::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:117::-;803:1;800;793:12;817:102;858:6;909:2;905:7;900:2;893:5;889:14;885:28;875:38;;817:102;;;:::o;925:180::-;973:77;970:1;963:88;1070:4;1067:1;1060:15;1094:4;1091:1;1084:15;1111:281;1194:27;1216:4;1194:27;:::i;:::-;1186:6;1182:40;1324:6;1312:10;1309:22;1288:18;1276:10;1273:34;1270:62;1267:88;;;1335:18;;:::i;:::-;1267:88;1375:10;1371:2;1364:22;1154:238;1111:281;;:::o;1398:129::-;1432:6;1459:20;;:::i;:::-;1449:30;;1488:33;1516:4;1508:6;1488:33;:::i;:::-;1398:129;;;:::o;1533:311::-;1610:4;1700:18;1692:6;1689:30;1686:56;;;1722:18;;:::i;:::-;1686:56;1772:4;1764:6;1760:17;1752:25;;1832:4;1826;1822:15;1814:23;;1533:311;;;:::o;1850:117::-;1959:1;1956;1949:12;1973:126;2010:7;2050:42;2043:5;2039:54;2028:65;;1973:126;;;:::o;2105:96::-;2142:7;2171:24;2189:5;2171:24;:::i;:::-;2160:35;;2105:96;;;:::o;2207:122::-;2280:24;2298:5;2280:24;:::i;:::-;2273:5;2270:35;2260:63;;2319:1;2316;2309:12;2260:63;2207:122;:::o;2335:143::-;2392:5;2423:6;2417:13;2408:22;;2439:33;2466:5;2439:33;:::i;:::-;2335:143;;;;:::o;2501:732::-;2608:5;2633:81;2649:64;2706:6;2649:64;:::i;:::-;2633:81;:::i;:::-;2624:90;;2734:5;2763:6;2756:5;2749:21;2797:4;2790:5;2786:16;2779:23;;2850:4;2842:6;2838:17;2830:6;2826:30;2879:3;2871:6;2868:15;2865:122;;;2898:79;;:::i;:::-;2865:122;3013:6;2996:231;3030:6;3025:3;3022:15;2996:231;;;3105:3;3134:48;3178:3;3166:10;3134:48;:::i;:::-;3129:3;3122:61;3212:4;3207:3;3203:14;3196:21;;3072:155;3056:4;3051:3;3047:14;3040:21;;2996:231;;;3000:21;2614:619;;2501:732;;;;;:::o;3256:385::-;3338:5;3387:3;3380:4;3372:6;3368:17;3364:27;3354:122;;3395:79;;:::i;:::-;3354:122;3505:6;3499:13;3530:105;3631:3;3623:6;3616:4;3608:6;3604:17;3530:105;:::i;:::-;3521:114;;3344:297;3256:385;;;;:::o;3647:1069::-;3785:6;3793;3801;3850:2;3838:9;3829:7;3825:23;3821:32;3818:119;;;3856:79;;:::i;:::-;3818:119;3976:1;4001:64;4057:7;4048:6;4037:9;4033:22;4001:64;:::i;:::-;3991:74;;3947:128;4135:2;4124:9;4120:18;4114:25;4166:18;4158:6;4155:30;4152:117;;;4188:79;;:::i;:::-;4152:117;4293:89;4374:7;4365:6;4354:9;4350:22;4293:89;:::i;:::-;4283:99;;4085:307;4452:2;4441:9;4437:18;4431:25;4483:18;4475:6;4472:30;4469:117;;;4505:79;;:::i;:::-;4469:117;4610:89;4691:7;4682:6;4671:9;4667:22;4610:89;:::i;:::-;4600:99;;4402:307;3647:1069;;;;;:::o;4722:180::-;4770:77;4767:1;4760:88;4867:4;4864:1;4857:15;4891:4;4888:1;4881:15;4908:180;4956:77;4953:1;4946:88;5053:4;5050:1;5043:15;5077:4;5074:1;5067:15;5094:233;5133:3;5156:24;5174:5;5156:24;:::i;:::-;5147:33;;5202:66;5195:5;5192:77;5189:103;;;5272:18;;:::i;:::-;5189:103;5319:1;5312:5;5308:13;5301:20;;5094:233;;;:::o;5333:85::-;5378:7;5407:5;5396:16;;5333:85;;;:::o;5424:60::-;5452:3;5473:5;5466:12;;5424:60;;;:::o;5490:158::-;5548:9;5581:61;5599:42;5608:32;5634:5;5608:32;:::i;:::-;5599:42;:::i;:::-;5581:61;:::i;:::-;5568:74;;5490:158;;;:::o;5654:147::-;5749:45;5788:5;5749:45;:::i;:::-;5744:3;5737:58;5654:147;;:::o;5807:118::-;5894:24;5912:5;5894:24;:::i;:::-;5889:3;5882:37;5807:118;;:::o;5931:348::-;6060:4;6098:2;6087:9;6083:18;6075:26;;6111:79;6187:1;6176:9;6172:17;6163:6;6111:79;:::i;:::-;6200:72;6268:2;6257:9;6253:18;6244:6;6200:72;:::i;:::-;5931:348;;;;;:::o;168:12420:9:-;;;;;;;", - "deployedSourceMap": "168:12420:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5685:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;634:212:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;381:66:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;561:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;225:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9366:355;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4062:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4339:130:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3326:114:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5404:214:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8962:198:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12112:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3514:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8229:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3661:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7866:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4832:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6281:739;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;311:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1431:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:291:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12432:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7497:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;630:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4606:123:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;657:23:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9961:668;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8583:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5685:362;351:26;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;5878:10:9::1;5891:53;5905:6;5913:5;5920:4;;5926:11;5939:4;5891:13;:53::i;:::-;5878:66;;5950:20;5960:2;5964:5;5950:9;:20::i;:::-;5999:1;5995:2;5981:61;6002:6;6010:5;6017:4;;6023:11;6036:5;5981:61;;;;;;;;;;;:::i;:::-;;;;;;;;5872:175;5685:362:::0;;;;;;;;:::o;634:212:1:-;719:4;757:42;742:57;;;:11;:57;;;;:97;;;;803:36;827:11;803:23;:36::i;:::-;742:97;735:104;;634:212;;;:::o;381:66:9:-;421:26;381:66;:::o;561:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;225:82::-;275:32;225:82;:::o;9366:355::-;421:26;2974:25;2982:4;2996:1;2974:7;:25::i;:::-;2969:77;;3009:30;3020:4;3026:12;:10;:12::i;:::-;3009:10;:30::i;:::-;2969:77;9557:10:::1;9570:53;9584:6;9592:5;9599:4;;9605:11;9618:4;9570:13;:53::i;:::-;9557:66;;9629:28;9641:2;9645:11;9629;:28::i;:::-;9663:33;9669:2;9673:1;9676:6;9684:5;9691:4;;9663:5;:33::i;:::-;9702:14;9713:2;9702:10;:14::i;:::-;9551:170;9366:355:::0;;;;;;;:::o;4062:206::-;4137:10;4155:17;4175:16;4188:2;4175:12;:16::i;:::-;4155:36;;503:1;4204:9;:27;:59;;;;;4248:15;4235:9;:28;;4204:59;4197:66;;;4062:206;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4339:130:9:-;4405:9;503:1;4429:16;4442:2;4429:12;:16::i;:::-;:35;4422:42;;4339:130;;;:::o;4387:145:0:-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;3326:114:9:-;3388:12;3434:1;3415:16;3428:2;3415:12;:16::i;:::-;:20;3408:27;;3326:114;;;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;8962:198:9:-;421:26;2974:25;2982:4;2996:1;2974:7;:25::i;:::-;2969:77;;3009:30;3020:4;3026:12;:10;:12::i;:::-;3009:10;:30::i;:::-;2969:77;9079:9:::1;9074:82;9098:3;;:10;;9094:1;:14;9074:82;;;9123:26;9142:3;;9146:1;9142:6;;;;;;;:::i;:::-;;;;;;;;9123:18;:26::i;:::-;9110:3;;;;:::i;:::-;;;9074:82;;;;8962:198:::0;;;:::o;12112:145::-;1753:4;1731:27;;:10;:27;;;1716:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;12191:35:::1;12206:8;;12216:9;12191:35;;;;;;;:::i;:::-;;;;;;;;12243:9;12232:8;:20;;;;12112:145:::0;:::o;3514:143::-;3591:12;503:1;3618:16;3631:2;3618:12;:16::i;:::-;:34;3611:41;;3514:143;;;:::o;8229:198::-;421:26;2974:25;2982:4;2996:1;2974:7;:25::i;:::-;2969:77;;3009:30;3020:4;3026:12;:10;:12::i;:::-;3009:10;:30::i;:::-;2969:77;8346:9:::1;8341:82;8365:3;;:10;;8361:1;:14;8341:82;;;8390:26;8409:3;;8413:1;8409:6;;;;;;;:::i;:::-;;;;;;;;8390:18;:26::i;:::-;8377:3;;;;:::i;:::-;;;8341:82;;;;8229:198:::0;;;:::o;3661:329::-;3715:10;3733:13;3749:1;3733:17;;3756:21;3780:33;421:26;3780:18;:33::i;:::-;3756:57;;3824:9;3819:167;3843:13;3839:1;:17;3819:167;;;3875:13;:17;3889:2;3875:17;;;;;;;;;;;:50;3893:31;421:26;3922:1;3893:13;:31::i;:::-;3875:50;;;;;;;;;;;;;;;;;;;;;;;;;3871:66;;;3936:1;3927:10;;;;;:::i;:::-;;;3871:66;3958:8;;3949:5;:17;3945:34;;;3975:4;3968:11;;;;;;;3945:34;3858:3;;;;;:::i;:::-;;;;3819:167;;;;3727:263;;3661:329;;;;:::o;7866:283::-;421:26;2974:25;2982:4;2996:1;2974:7;:25::i;:::-;2969:77;;3009:30;3020:4;3026:12;:10;:12::i;:::-;3009:10;:30::i;:::-;2969:77;7976:22:::1;7995:2;7976:18;:22::i;:::-;7961:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8101:4;8069:13;:17;8083:2;8069:17;;;;;;;;;;;:29;8087:10;8069:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8129:10;8116:28;;;8141:2;8116:28;;;;;;:::i;:::-;;;;;;;;7866:283:::0;;:::o;4832:256::-;4995:12;5043:6;5051:5;5058:4;;5064:11;5077:4;5032:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5022:61;;;;;;5015:68;;4832:256;;;;;;;;:::o;6281:739::-;351:26;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;6539:6:9::1;;:13;;6521:7;;:14;;:31;6506:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;6640:5;;:12;;6622:7;;:14;;:30;6607:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;6708:10;6721:61;6740:7;;6749:6;;6757:5;;6764:11;6777:4;6721:18;:61::i;:::-;6708:74;;6788:20;6798:2;6802:5;6788:9;:20::i;:::-;6819:9;6814:202;6838:7;;:14;;6834:1;:18;6814:202;;;6907:1;6895:2;6872:137;6918:7;;6926:1;6918:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6938:6;;6945:1;6938:9;;;;;;;:::i;:::-;;;;;;;;6957:5;;6963:1;6957:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;6975:11;6996:5;6872:137;;;;;;;;;;;:::i;:::-;;;;;;;;6854:3;;;;:::i;:::-;;;6814:202;;;;6500:520;6281:739:::0;;;;;;;;;;:::o;311:66::-;351:26;311:66;:::o;1431:151:1:-;1521:7;1547:28;1569:5;1547:12;:18;1560:4;1547:18;;;;;;;;;;;:21;;:28;;;;:::i;:::-;1540:35;;1431:151;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;2027:49::-;2072:4;2027:49;;;:::o;5194:291:9:-;5389:12;5437:7;;5446:6;;5454:5;;5461:11;5474:4;5426:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5416:64;;;;;;5409:71;;5194:291;;;;;;;;;;:::o;12432:154::-;1753:4;1731:27;;:10;:27;;;1716:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;12517:38:::1;12535:8;;12545:9;12517:38;;;;;;;:::i;:::-;;;;;;;;12572:9;12561:8;:20;;;;12432:154:::0;:::o;7497:231::-;351:26;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;7585:22:9::1;7604:2;7585:18;:22::i;:::-;7570:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;7683:11;:15;7695:2;7683:15;;;;;;;;;;;7676:22;;;7720:2;7710:13;;;;;;;;;;7497:231:::0;;:::o;630:23::-;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::o;4606:123:9:-;4677:17;4709:11;:15;4721:2;4709:15;;;;;;;;;;;;4702:22;;4606:123;;;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;657:23:9:-;;;;:::o;9961:668::-;421:26;2974:25;2982:4;2996:1;2974:7;:25::i;:::-;2969:77;;3009:30;3020:4;3026:12;:10;:12::i;:::-;3009:10;:30::i;:::-;2969:77;10217:6:::1;;:13;;10199:7;;:14;;:31;10184:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;10318:5;;:12;;10300:7;;:14;;:30;10285:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10386:10;10399:61;10418:7;;10427:6;;10435:5;;10442:11;10455:4;10399:18;:61::i;:::-;10386:74;;10466:28;10478:2;10482:11;10466;:28::i;:::-;10505:9;10500:105;10524:7;;:14;;10520:1;:18;10500:105;;;10553:45;10559:2;10563:1;10566:7;;10574:1;10566:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10578:6;;10585:1;10578:9;;;;;;;:::i;:::-;;;;;;;;10589:5;;10595:1;10589:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;10553:5;:45::i;:::-;10540:3;;;;:::i;:::-;;;10500:105;;;;10610:14;10621:2;10610:10;:14::i;:::-;10178:451;9961:668:::0;;;;;;;;;:::o;8583:282::-;421:26;2974:25;2982:4;2996:1;2974:7;:25::i;:::-;2969:77;;3009:30;3020:4;3026:12;:10;:12::i;:::-;3009:10;:30::i;:::-;2969:77;8693:22:::1;8712:2;8693:18;:22::i;:::-;8678:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8818:5;8786:13;:17;8800:2;8786:17;;;;;;;;;;;:29;8804:10;8786:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8845:10;8834:26;;;8857:2;8834:26;;;;;;:::i;:::-;;;;;;;;8583:282:::0;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;7114:258:9:-;7183:15;7195:2;7183:11;:15::i;:::-;7182:16;7174:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7271:8;;7262:5;:17;;7254:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7362:5;7344:15;:23;;;;:::i;:::-;7326:11;:15;7338:2;7326:15;;;;;;;;;;;:41;;;;7114:258;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;10704:393:9:-;10785:20;10802:2;10785:16;:20::i;:::-;10777:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10871:15;10883:2;10871:11;:15::i;:::-;10856:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;11006:1;10998:10;;10983:11;:25;:57;;;;11012:28;11028:11;11012:15;:28::i;:::-;10983:57;10968:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;10704:393;;:::o;11429:318::-;11562:12;11580:6;:11;;11599:5;11606:4;;11580:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11561:50;;;11625:7;11617:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11715:5;11711:2;11698:44;11722:6;11730:5;11737:4;;11698:44;;;;;;;;;:::i;:::-;;;;;;;;11555:192;11429:318;;;;;;:::o;11171:163::-;11225:20;11242:2;11225:16;:20::i;:::-;11217:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;503:1;11296:11;:15;11308:2;11296:15;;;;;;;;;;;:33;;;;11171:163;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;:31;;;;:::i;:::-;;1978:166;;:::o;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:34;2389:7;2363:12;:18;2376:4;2363:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;2233:171;;:::o;8870:156:8:-;8944:7;8994:22;8998:3;:10;;9010:5;8994:3;:22::i;:::-;8986:31;;8963:56;;8870:156;;;;:::o;8413:115::-;8476:7;8502:19;8510:3;:10;;8502:7;:19::i;:::-;8495:26;;8413:115;;;:::o;1697:404::-;1760:4;1781:21;1791:3;1796:5;1781:9;:21::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;1588:441:5:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;829:155:6:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;7219:234:0:-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;7930:156:8:-;8003:4;8026:53;8034:3;:10;;8070:5;8054:23;;8046:32;;8026:7;:53::i;:::-;8019:60;;7930:156;;;;:::o;4395:118::-;4462:7;4488:3;:11;;4500:5;4488:18;;;;;;;;:::i;:::-;;;;;;;;;;4481:25;;4395:118;;;;:::o;3946:107::-;4002:7;4028:3;:11;;:18;;;;4021:25;;3946:107;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;2269:1388::-;2335:4;2451:18;2472:3;:12;;:19;2485:5;2472:19;;;;;;;;;;;;2451:40;;2520:1;2506:10;:15;2502:1149;;2875:21;2912:1;2899:10;:14;;;;:::i;:::-;2875:38;;2927:17;2968:1;2947:3;:11;;:18;;;;:22;;;;:::i;:::-;2927:42;;3001:13;2988:9;:26;2984:398;;3034:17;3054:3;:11;;3066:9;3054:22;;;;;;;;:::i;:::-;;;;;;;;;;3034:42;;3205:9;3176:3;:11;;3188:13;3176:26;;;;;;;;:::i;:::-;;;;;;;;;:38;;;;3314:10;3288:3;:12;;:23;3301:9;3288:23;;;;;;;;;;;:36;;;;3016:366;2984:398;3460:3;:11;;:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3552:3;:12;;:19;3565:5;3552:19;;;;;;;;;;;3545:26;;;3593:4;3586:11;;;;;;;2502:1149;3635:5;3628:12;;;2269:1388;;;;;:::o;88:117:10:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:77::-;2174:7;2203:5;2192:16;;2137:77;;;:::o;2220:122::-;2293:24;2311:5;2293:24;:::i;:::-;2286:5;2283:35;2273:63;;2332:1;2329;2322:12;2273:63;2220:122;:::o;2348:139::-;2394:5;2432:6;2419:20;2410:29;;2448:33;2475:5;2448:33;:::i;:::-;2348:139;;;;:::o;2493:1255::-;2608:6;2616;2624;2632;2640;2648;2656;2705:3;2693:9;2684:7;2680:23;2676:33;2673:120;;;2712:79;;:::i;:::-;2673:120;2832:1;2857:53;2902:7;2893:6;2882:9;2878:22;2857:53;:::i;:::-;2847:63;;2803:117;2959:2;2985:53;3030:7;3021:6;3010:9;3006:22;2985:53;:::i;:::-;2975:63;;2930:118;3115:2;3104:9;3100:18;3087:32;3146:18;3138:6;3135:30;3132:117;;;3168:79;;:::i;:::-;3132:117;3281:64;3337:7;3328:6;3317:9;3313:22;3281:64;:::i;:::-;3263:82;;;;3058:297;3394:2;3420:53;3465:7;3456:6;3445:9;3441:22;3420:53;:::i;:::-;3410:63;;3365:118;3522:3;3549:53;3594:7;3585:6;3574:9;3570:22;3549:53;:::i;:::-;3539:63;;3493:119;3651:3;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3622:119;2493:1255;;;;;;;;;;:::o;3754:149::-;3790:7;3830:66;3823:5;3819:78;3808:89;;3754:149;;;:::o;3909:120::-;3981:23;3998:5;3981:23;:::i;:::-;3974:5;3971:34;3961:62;;4019:1;4016;4009:12;3961:62;3909:120;:::o;4035:137::-;4080:5;4118:6;4105:20;4096:29;;4134:32;4160:5;4134:32;:::i;:::-;4035:137;;;;:::o;4178:327::-;4236:6;4285:2;4273:9;4264:7;4260:23;4256:32;4253:119;;;4291:79;;:::i;:::-;4253:119;4411:1;4436:52;4480:7;4471:6;4460:9;4456:22;4436:52;:::i;:::-;4426:62;;4382:116;4178:327;;;;:::o;4511:90::-;4545:7;4588:5;4581:13;4574:21;4563:32;;4511:90;;;:::o;4607:109::-;4688:21;4703:5;4688:21;:::i;:::-;4683:3;4676:34;4607:109;;:::o;4722:210::-;4809:4;4847:2;4836:9;4832:18;4824:26;;4860:65;4922:1;4911:9;4907:17;4898:6;4860:65;:::i;:::-;4722:210;;;;:::o;4938:118::-;5025:24;5043:5;5025:24;:::i;:::-;5020:3;5013:37;4938:118;;:::o;5062:222::-;5155:4;5193:2;5182:9;5178:18;5170:26;;5206:71;5274:1;5263:9;5259:17;5250:6;5206:71;:::i;:::-;5062:222;;;;:::o;5290:474::-;5358:6;5366;5415:2;5403:9;5394:7;5390:23;5386:32;5383:119;;;5421:79;;:::i;:::-;5383:119;5541:1;5566:53;5611:7;5602:6;5591:9;5587:22;5566:53;:::i;:::-;5556:63;;5512:117;5668:2;5694:53;5739:7;5730:6;5719:9;5715:22;5694:53;:::i;:::-;5684:63;;5639:118;5290:474;;;;;:::o;5770:1109::-;5876:6;5884;5892;5900;5908;5916;5965:3;5953:9;5944:7;5940:23;5936:33;5933:120;;;5972:79;;:::i;:::-;5933:120;6092:1;6117:53;6162:7;6153:6;6142:9;6138:22;6117:53;:::i;:::-;6107:63;;6063:117;6219:2;6245:53;6290:7;6281:6;6270:9;6266:22;6245:53;:::i;:::-;6235:63;;6190:118;6375:2;6364:9;6360:18;6347:32;6406:18;6398:6;6395:30;6392:117;;;6428:79;;:::i;:::-;6392:117;6541:64;6597:7;6588:6;6577:9;6573:22;6541:64;:::i;:::-;6523:82;;;;6318:297;6654:2;6680:53;6725:7;6716:6;6705:9;6701:22;6680:53;:::i;:::-;6670:63;;6625:118;6782:3;6809:53;6854:7;6845:6;6834:9;6830:22;6809:53;:::i;:::-;6799:63;;6753:119;5770:1109;;;;;;;;:::o;6885:329::-;6944:6;6993:2;6981:9;6972:7;6968:23;6964:32;6961:119;;;6999:79;;:::i;:::-;6961:119;7119:1;7144:53;7189:7;7180:6;7169:9;7165:22;7144:53;:::i;:::-;7134:63;;7090:117;6885:329;;;;:::o;7237:568::-;7310:8;7320:6;7370:3;7363:4;7355:6;7351:17;7347:27;7337:122;;7378:79;;:::i;:::-;7337:122;7491:6;7478:20;7468:30;;7521:18;7513:6;7510:30;7507:117;;;7543:79;;:::i;:::-;7507:117;7657:4;7649:6;7645:17;7633:29;;7711:3;7703:4;7695:6;7691:17;7681:8;7677:32;7674:41;7671:128;;;7718:79;;:::i;:::-;7671:128;7237:568;;;;;:::o;7811:559::-;7897:6;7905;7954:2;7942:9;7933:7;7929:23;7925:32;7922:119;;;7960:79;;:::i;:::-;7922:119;8108:1;8097:9;8093:17;8080:31;8138:18;8130:6;8127:30;8124:117;;;8160:79;;:::i;:::-;8124:117;8273:80;8345:7;8336:6;8325:9;8321:22;8273:80;:::i;:::-;8255:98;;;;8051:312;7811:559;;;;;:::o;8376:329::-;8435:6;8484:2;8472:9;8463:7;8459:23;8455:32;8452:119;;;8490:79;;:::i;:::-;8452:119;8610:1;8635:53;8680:7;8671:6;8660:9;8656:22;8635:53;:::i;:::-;8625:63;;8581:117;8376:329;;;;:::o;8728:568::-;8801:8;8811:6;8861:3;8854:4;8846:6;8842:17;8838:27;8828:122;;8869:79;;:::i;:::-;8828:122;8982:6;8969:20;8959:30;;9012:18;9004:6;9001:30;8998:117;;;9034:79;;:::i;:::-;8998:117;9148:4;9140:6;9136:17;9124:29;;9202:3;9194:4;9186:6;9182:17;9172:8;9168:32;9165:41;9162:128;;;9209:79;;:::i;:::-;9162:128;8728:568;;;;;:::o;9319:::-;9392:8;9402:6;9452:3;9445:4;9437:6;9433:17;9429:27;9419:122;;9460:79;;:::i;:::-;9419:122;9573:6;9560:20;9550:30;;9603:18;9595:6;9592:30;9589:117;;;9625:79;;:::i;:::-;9589:117;9739:4;9731:6;9727:17;9715:29;;9793:3;9785:4;9777:6;9773:17;9763:8;9759:32;9756:41;9753:128;;;9800:79;;:::i;:::-;9753:128;9319:568;;;;;:::o;9908:579::-;9992:8;10002:6;10052:3;10045:4;10037:6;10033:17;10029:27;10019:122;;10060:79;;:::i;:::-;10019:122;10173:6;10160:20;10150:30;;10203:18;10195:6;10192:30;10189:117;;;10225:79;;:::i;:::-;10189:117;10339:4;10331:6;10327:17;10315:29;;10393:3;10385:4;10377:6;10373:17;10363:8;10359:32;10356:41;10353:128;;;10400:79;;:::i;:::-;10353:128;9908:579;;;;;:::o;10493:1769::-;10689:6;10697;10705;10713;10721;10729;10737;10745;10753;10802:3;10790:9;10781:7;10777:23;10773:33;10770:120;;;10809:79;;:::i;:::-;10770:120;10957:1;10946:9;10942:17;10929:31;10987:18;10979:6;10976:30;10973:117;;;11009:79;;:::i;:::-;10973:117;11122:80;11194:7;11185:6;11174:9;11170:22;11122:80;:::i;:::-;11104:98;;;;10900:312;11279:2;11268:9;11264:18;11251:32;11310:18;11302:6;11299:30;11296:117;;;11332:79;;:::i;:::-;11296:117;11445:80;11517:7;11508:6;11497:9;11493:22;11445:80;:::i;:::-;11427:98;;;;11222:313;11602:2;11591:9;11587:18;11574:32;11633:18;11625:6;11622:30;11619:117;;;11655:79;;:::i;:::-;11619:117;11768:91;11851:7;11842:6;11831:9;11827:22;11768:91;:::i;:::-;11750:109;;;;11545:324;11908:2;11934:53;11979:7;11970:6;11959:9;11955:22;11934:53;:::i;:::-;11924:63;;11879:118;12036:3;12063:53;12108:7;12099:6;12088:9;12084:22;12063:53;:::i;:::-;12053:63;;12007:119;12165:3;12192:53;12237:7;12228:6;12217:9;12213:22;12192:53;:::i;:::-;12182:63;;12136:119;10493:1769;;;;;;;;;;;:::o;12268:474::-;12336:6;12344;12393:2;12381:9;12372:7;12368:23;12364:32;12361:119;;;12399:79;;:::i;:::-;12361:119;12519:1;12544:53;12589:7;12580:6;12569:9;12565:22;12544:53;:::i;:::-;12534:63;;12490:117;12646:2;12672:53;12717:7;12708:6;12697:9;12693:22;12672:53;:::i;:::-;12662:63;;12617:118;12268:474;;;;;:::o;12748:118::-;12835:24;12853:5;12835:24;:::i;:::-;12830:3;12823:37;12748:118;;:::o;12872:222::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13016:71;13084:1;13073:9;13069:17;13060:6;13016:71;:::i;:::-;12872:222;;;;:::o;13100:1623::-;13287:6;13295;13303;13311;13319;13327;13335;13343;13392:3;13380:9;13371:7;13367:23;13363:33;13360:120;;;13399:79;;:::i;:::-;13360:120;13547:1;13536:9;13532:17;13519:31;13577:18;13569:6;13566:30;13563:117;;;13599:79;;:::i;:::-;13563:117;13712:80;13784:7;13775:6;13764:9;13760:22;13712:80;:::i;:::-;13694:98;;;;13490:312;13869:2;13858:9;13854:18;13841:32;13900:18;13892:6;13889:30;13886:117;;;13922:79;;:::i;:::-;13886:117;14035:80;14107:7;14098:6;14087:9;14083:22;14035:80;:::i;:::-;14017:98;;;;13812:313;14192:2;14181:9;14177:18;14164:32;14223:18;14215:6;14212:30;14209:117;;;14245:79;;:::i;:::-;14209:117;14358:91;14441:7;14432:6;14421:9;14417:22;14358:91;:::i;:::-;14340:109;;;;14135:324;14498:2;14524:53;14569:7;14560:6;14549:9;14545:22;14524:53;:::i;:::-;14514:63;;14469:118;14626:3;14653:53;14698:7;14689:6;14678:9;14674:22;14653:53;:::i;:::-;14643:63;;14597:119;13100:1623;;;;;;;;;;;:::o;14729:118::-;14816:24;14834:5;14816:24;:::i;:::-;14811:3;14804:37;14729:118;;:::o;14853:222::-;14946:4;14984:2;14973:9;14969:18;14961:26;;14997:71;15065:1;15054:9;15050:17;15041:6;14997:71;:::i;:::-;14853:222;;;;:::o;15081:168::-;15164:11;15198:6;15193:3;15186:19;15238:4;15233:3;15229:14;15214:29;;15081:168;;;;:::o;15255:154::-;15339:6;15334:3;15329;15316:30;15401:1;15392:6;15387:3;15383:16;15376:27;15255:154;;;:::o;15415:102::-;15456:6;15507:2;15503:7;15498:2;15491:5;15487:14;15483:28;15473:38;;15415:102;;;:::o;15545:301::-;15641:3;15662:70;15725:6;15720:3;15662:70;:::i;:::-;15655:77;;15742:43;15778:6;15773:3;15766:5;15742:43;:::i;:::-;15810:29;15832:6;15810:29;:::i;:::-;15805:3;15801:39;15794:46;;15545:301;;;;;:::o;15852:771::-;16085:4;16123:3;16112:9;16108:19;16100:27;;16137:71;16205:1;16194:9;16190:17;16181:6;16137:71;:::i;:::-;16218:72;16286:2;16275:9;16271:18;16262:6;16218:72;:::i;:::-;16337:9;16331:4;16327:20;16322:2;16311:9;16307:18;16300:48;16365:86;16446:4;16437:6;16429;16365:86;:::i;:::-;16357:94;;16461:72;16529:2;16518:9;16514:18;16505:6;16461:72;:::i;:::-;16543:73;16611:3;16600:9;16596:19;16587:6;16543:73;:::i;:::-;15852:771;;;;;;;;;:::o;16629:169::-;16713:11;16747:6;16742:3;16735:19;16787:4;16782:3;16778:14;16763:29;;16629:169;;;;:::o;16804:234::-;16944:34;16940:1;16932:6;16928:14;16921:58;17013:17;17008:2;17000:6;16996:15;16989:42;16804:234;:::o;17044:366::-;17186:3;17207:67;17271:2;17266:3;17207:67;:::i;:::-;17200:74;;17283:93;17372:3;17283:93;:::i;:::-;17401:2;17396:3;17392:12;17385:19;;17044:366;;;:::o;17416:419::-;17582:4;17620:2;17609:9;17605:18;17597:26;;17669:9;17663:4;17659:20;17655:1;17644:9;17640:17;17633:47;17697:131;17823:4;17697:131;:::i;:::-;17689:139;;17416:419;;;:::o;17841:180::-;17889:77;17886:1;17879:88;17986:4;17983:1;17976:15;18010:4;18007:1;18000:15;18027:180;18075:77;18072:1;18065:88;18172:4;18169:1;18162:15;18196:4;18193:1;18186:15;18213:233;18252:3;18275:24;18293:5;18275:24;:::i;:::-;18266:33;;18321:66;18314:5;18311:77;18308:103;;;18391:18;;:::i;:::-;18308:103;18438:1;18431:5;18427:13;18420:20;;18213:233;;;:::o;18452:226::-;18592:34;18588:1;18580:6;18576:14;18569:58;18661:9;18656:2;18648:6;18644:15;18637:34;18452:226;:::o;18684:366::-;18826:3;18847:67;18911:2;18906:3;18847:67;:::i;:::-;18840:74;;18923:93;19012:3;18923:93;:::i;:::-;19041:2;19036:3;19032:12;19025:19;;18684:366;;;:::o;19056:419::-;19222:4;19260:2;19249:9;19245:18;19237:26;;19309:9;19303:4;19299:20;19295:1;19284:9;19280:17;19273:47;19337:131;19463:4;19337:131;:::i;:::-;19329:139;;19056:419;;;:::o;19481:332::-;19602:4;19640:2;19629:9;19625:18;19617:26;;19653:71;19721:1;19710:9;19706:17;19697:6;19653:71;:::i;:::-;19734:72;19802:2;19791:9;19787:18;19778:6;19734:72;:::i;:::-;19481:332;;;;;:::o;19819:305::-;19859:3;19878:20;19896:1;19878:20;:::i;:::-;19873:25;;19912:20;19930:1;19912:20;:::i;:::-;19907:25;;20066:1;19998:66;19994:74;19991:1;19988:81;19985:107;;;20072:18;;:::i;:::-;19985:107;20116:1;20113;20109:9;20102:16;;19819:305;;;;:::o;20130:236::-;20270:34;20266:1;20258:6;20254:14;20247:58;20339:19;20334:2;20326:6;20322:15;20315:44;20130:236;:::o;20372:366::-;20514:3;20535:67;20599:2;20594:3;20535:67;:::i;:::-;20528:74;;20611:93;20700:3;20611:93;:::i;:::-;20729:2;20724:3;20720:12;20713:19;;20372:366;;;:::o;20744:419::-;20910:4;20948:2;20937:9;20933:18;20925:26;;20997:9;20991:4;20987:20;20983:1;20972:9;20968:17;20961:47;21025:131;21151:4;21025:131;:::i;:::-;21017:139;;20744:419;;;:::o;21169:771::-;21402:4;21440:3;21429:9;21425:19;21417:27;;21454:71;21522:1;21511:9;21507:17;21498:6;21454:71;:::i;:::-;21535:72;21603:2;21592:9;21588:18;21579:6;21535:72;:::i;:::-;21654:9;21648:4;21644:20;21639:2;21628:9;21624:18;21617:48;21682:86;21763:4;21754:6;21746;21682:86;:::i;:::-;21674:94;;21778:72;21846:2;21835:9;21831:18;21822:6;21778:72;:::i;:::-;21860:73;21928:3;21917:9;21913:19;21904:6;21860:73;:::i;:::-;21169:771;;;;;;;;;:::o;21946:220::-;22086:34;22082:1;22074:6;22070:14;22063:58;22155:3;22150:2;22142:6;22138:15;22131:28;21946:220;:::o;22172:366::-;22314:3;22335:67;22399:2;22394:3;22335:67;:::i;:::-;22328:74;;22411:93;22500:3;22411:93;:::i;:::-;22529:2;22524:3;22520:12;22513:19;;22172:366;;;:::o;22544:419::-;22710:4;22748:2;22737:9;22733:18;22725:26;;22797:9;22791:4;22787:20;22783:1;22772:9;22768:17;22761:47;22825:131;22951:4;22825:131;:::i;:::-;22817:139;;22544:419;;;:::o;22969:329::-;23028:6;23077:2;23065:9;23056:7;23052:23;23048:32;23045:119;;;23083:79;;:::i;:::-;23045:119;23203:1;23228:53;23273:7;23264:6;23253:9;23249:22;23228:53;:::i;:::-;23218:63;;23174:117;22969:329;;;;:::o;23304:117::-;23413:1;23410;23403:12;23427:117;23536:1;23533;23526:12;23550:117;23659:1;23656;23649:12;23673:724;23750:4;23756:6;23812:11;23799:25;23912:1;23906:4;23902:12;23891:8;23875:14;23871:29;23867:48;23847:18;23843:73;23833:168;;23920:79;;:::i;:::-;23833:168;24032:18;24022:8;24018:33;24010:41;;24084:4;24071:18;24061:28;;24112:18;24104:6;24101:30;24098:117;;;24134:79;;:::i;:::-;24098:117;24242:2;24236:4;24232:13;24224:21;;24299:4;24291:6;24287:17;24271:14;24267:38;24261:4;24257:49;24254:136;;;24309:79;;:::i;:::-;24254:136;23763:634;23673:724;;;;;:::o;24403:184::-;24502:11;24536:6;24531:3;24524:19;24576:4;24571:3;24567:14;24552:29;;24403:184;;;;:::o;24593:102::-;24662:4;24685:3;24677:11;;24593:102;;;:::o;24701:108::-;24778:24;24796:5;24778:24;:::i;:::-;24773:3;24766:37;24701:108;;:::o;24815:179::-;24884:10;24905:46;24947:3;24939:6;24905:46;:::i;:::-;24983:4;24978:3;24974:14;24960:28;;24815:179;;;;:::o;25000:122::-;25052:5;25077:39;25112:2;25107:3;25103:12;25098:3;25077:39;:::i;:::-;25068:48;;25000:122;;;;:::o;25128:115::-;25200:4;25232;25227:3;25223:14;25215:22;;25128:115;;;:::o;25279:699::-;25408:3;25431:86;25510:6;25505:3;25431:86;:::i;:::-;25424:93;;25541:58;25593:5;25541:58;:::i;:::-;25622:7;25653:1;25638:315;25663:6;25660:1;25657:13;25638:315;;;25733:42;25768:6;25759:7;25733:42;:::i;:::-;25795:63;25854:3;25839:13;25795:63;:::i;:::-;25788:70;;25881:62;25936:6;25881:62;:::i;:::-;25871:72;;25698:255;25685:1;25682;25678:9;25673:14;;25638:315;;;25642:14;25969:3;25962:10;;25413:565;;25279:699;;;;;:::o;25984:184::-;26083:11;26117:6;26112:3;26105:19;26157:4;26152:3;26148:14;26133:29;;25984:184;;;;:::o;26174:117::-;26283:1;26280;26273:12;26327:537;26455:3;26476:86;26555:6;26550:3;26476:86;:::i;:::-;26469:93;;26586:66;26578:6;26575:78;26572:165;;;26656:79;;:::i;:::-;26572:165;26768:4;26760:6;26756:17;26746:27;;26783:43;26819:6;26814:3;26807:5;26783:43;:::i;:::-;26851:6;26846:3;26842:16;26835:23;;26327:537;;;;;:::o;26870:193::-;26978:11;27012:6;27007:3;27000:19;27052:4;27047:3;27043:14;27028:29;;26870:193;;;;:::o;27069:113::-;27149:4;27172:3;27164:11;;27069:113;;;:::o;27188:158::-;27261:11;27295:6;27290:3;27283:19;27335:4;27330:3;27326:14;27311:29;;27188:158;;;;:::o;27374:281::-;27460:3;27481:60;27534:6;27529:3;27481:60;:::i;:::-;27474:67;;27551:43;27587:6;27582:3;27575:5;27551:43;:::i;:::-;27619:29;27641:6;27619:29;:::i;:::-;27614:3;27610:39;27603:46;;27374:281;;;;;:::o;27661:212::-;27758:10;27793:74;27863:3;27855:6;27847;27793:74;:::i;:::-;27779:88;;27661:212;;;;;:::o;27879:117::-;27988:1;27985;27978:12;28002:117;28111:1;28108;28101:12;28125:117;28234:1;28231;28224:12;28248:714;28312:5;28319:6;28375:3;28362:17;28467:1;28461:4;28457:12;28446:8;28430:14;28426:29;28422:48;28402:18;28398:73;28388:168;;28475:79;;:::i;:::-;28388:168;28598:8;28578:18;28574:33;28565:42;;28640:5;28627:19;28617:29;;28675:4;28668:5;28664:16;28655:25;;28703:18;28695:6;28692:30;28689:117;;;28725:79;;:::i;:::-;28689:117;28864:4;28856:6;28852:17;28836:14;28832:38;28822:8;28818:53;28815:140;;;28874:79;;:::i;:::-;28815:140;28326:636;28248:714;;;;;:::o;28968:126::-;29051:4;29083;29078:3;29074:14;29066:22;;28968:126;;;:::o;29126:990::-;29275:3;29298:95;29386:6;29381:3;29298:95;:::i;:::-;29291:102;;29419:3;29464:4;29456:6;29452:17;29447:3;29443:27;29494:69;29557:5;29494:69;:::i;:::-;29586:7;29617:1;29602:469;29627:6;29624:1;29621:13;29602:469;;;29698:9;29692:4;29688:20;29683:3;29676:33;29758:53;29804:6;29795:7;29758:53;:::i;:::-;29832:99;29926:4;29911:13;29896;29832:99;:::i;:::-;29824:107;;29954:73;30020:6;29954:73;:::i;:::-;29944:83;;30056:4;30051:3;30047:14;30040:21;;29662:409;;29649:1;29646;29642:9;29637:14;;29602:469;;;29606:14;30087:4;30080:11;;30107:3;30100:10;;29280:836;;;;29126:990;;;;;:::o;30122:1217::-;30527:4;30565:3;30554:9;30550:19;30542:27;;30615:9;30609:4;30605:20;30601:1;30590:9;30586:17;30579:47;30643:118;30756:4;30747:6;30739;30643:118;:::i;:::-;30635:126;;30808:9;30802:4;30798:20;30793:2;30782:9;30778:18;30771:48;30836:118;30949:4;30940:6;30932;30836:118;:::i;:::-;30828:126;;31001:9;30995:4;30991:20;30986:2;30975:9;30971:18;30964:48;31029:138;31162:4;31153:6;31145;31029:138;:::i;:::-;31021:146;;31177:72;31245:2;31234:9;31230:18;31221:6;31177:72;:::i;:::-;31259:73;31327:3;31316:9;31312:19;31303:6;31259:73;:::i;:::-;30122:1217;;;;;;;;;;;:::o;31345:234::-;31485:34;31481:1;31473:6;31469:14;31462:58;31554:17;31549:2;31541:6;31537:15;31530:42;31345:234;:::o;31585:366::-;31727:3;31748:67;31812:2;31807:3;31748:67;:::i;:::-;31741:74;;31824:93;31913:3;31824:93;:::i;:::-;31942:2;31937:3;31933:12;31926:19;;31585:366;;;:::o;31957:419::-;32123:4;32161:2;32150:9;32146:18;32138:26;;32210:9;32204:4;32200:20;32196:1;32185:9;32181:17;32174:47;32238:131;32364:4;32238:131;:::i;:::-;32230:139;;31957:419;;;:::o;32382:148::-;32484:11;32521:3;32506:18;;32382:148;;;;:::o;32536:173::-;32676:25;32672:1;32664:6;32660:14;32653:49;32536:173;:::o;32715:402::-;32875:3;32896:85;32978:2;32973:3;32896:85;:::i;:::-;32889:92;;32990:93;33079:3;32990:93;:::i;:::-;33108:2;33103:3;33099:12;33092:19;;32715:402;;;:::o;33123:99::-;33175:6;33209:5;33203:12;33193:22;;33123:99;;;:::o;33228:307::-;33296:1;33306:113;33320:6;33317:1;33314:13;33306:113;;;33405:1;33400:3;33396:11;33390:18;33386:1;33381:3;33377:11;33370:39;33342:2;33339:1;33335:10;33330:15;;33306:113;;;33437:6;33434:1;33431:13;33428:101;;;33517:1;33508:6;33503:3;33499:16;33492:27;33428:101;33277:258;33228:307;;;:::o;33541:377::-;33647:3;33675:39;33708:5;33675:39;:::i;:::-;33730:89;33812:6;33807:3;33730:89;:::i;:::-;33723:96;;33828:52;33873:6;33868:3;33861:4;33854:5;33850:16;33828:52;:::i;:::-;33905:6;33900:3;33896:16;33889:23;;33651:267;33541:377;;;;:::o;33924:167::-;34064:19;34060:1;34052:6;34048:14;34041:43;33924:167;:::o;34097:402::-;34257:3;34278:85;34360:2;34355:3;34278:85;:::i;:::-;34271:92;;34372:93;34461:3;34372:93;:::i;:::-;34490:2;34485:3;34481:12;34474:19;;34097:402;;;:::o;34505:967::-;34887:3;34909:148;35053:3;34909:148;:::i;:::-;34902:155;;35074:95;35165:3;35156:6;35074:95;:::i;:::-;35067:102;;35186:148;35330:3;35186:148;:::i;:::-;35179:155;;35351:95;35442:3;35433:6;35351:95;:::i;:::-;35344:102;;35463:3;35456:10;;34505:967;;;;;:::o;35478:364::-;35566:3;35594:39;35627:5;35594:39;:::i;:::-;35649:71;35713:6;35708:3;35649:71;:::i;:::-;35642:78;;35729:52;35774:6;35769:3;35762:4;35755:5;35751:16;35729:52;:::i;:::-;35806:29;35828:6;35806:29;:::i;:::-;35801:3;35797:39;35790:46;;35570:272;35478:364;;;;:::o;35848:313::-;35961:4;35999:2;35988:9;35984:18;35976:26;;36048:9;36042:4;36038:20;36034:1;36023:9;36019:17;36012:47;36076:78;36149:4;36140:6;36076:78;:::i;:::-;36068:86;;35848:313;;;;:::o;36167:232::-;36307:34;36303:1;36295:6;36291:14;36284:58;36376:15;36371:2;36363:6;36359:15;36352:40;36167:232;:::o;36405:366::-;36547:3;36568:67;36632:2;36627:3;36568:67;:::i;:::-;36561:74;;36644:93;36733:3;36644:93;:::i;:::-;36762:2;36757:3;36753:12;36746:19;;36405:366;;;:::o;36777:419::-;36943:4;36981:2;36970:9;36966:18;36958:26;;37030:9;37024:4;37020:20;37016:1;37005:9;37001:17;36994:47;37058:131;37184:4;37058:131;:::i;:::-;37050:139;;36777:419;;;:::o;37202:223::-;37342:34;37338:1;37330:6;37326:14;37319:58;37411:6;37406:2;37398:6;37394:15;37387:31;37202:223;:::o;37431:366::-;37573:3;37594:67;37658:2;37653:3;37594:67;:::i;:::-;37587:74;;37670:93;37759:3;37670:93;:::i;:::-;37788:2;37783:3;37779:12;37772:19;;37431:366;;;:::o;37803:419::-;37969:4;38007:2;37996:9;37992:18;37984:26;;38056:9;38050:4;38046:20;38042:1;38031:9;38027:17;38020:47;38084:131;38210:4;38084:131;:::i;:::-;38076:139;;37803:419;;;:::o;38228:227::-;38368:34;38364:1;38356:6;38352:14;38345:58;38437:10;38432:2;38424:6;38420:15;38413:35;38228:227;:::o;38461:366::-;38603:3;38624:67;38688:2;38683:3;38624:67;:::i;:::-;38617:74;;38700:93;38789:3;38700:93;:::i;:::-;38818:2;38813:3;38809:12;38802:19;;38461:366;;;:::o;38833:419::-;38999:4;39037:2;39026:9;39022:18;39014:26;;39086:9;39080:4;39076:20;39072:1;39061:9;39057:17;39050:47;39114:131;39240:4;39114:131;:::i;:::-;39106:139;;38833:419;;;:::o;39258:247::-;39398:34;39394:1;39386:6;39382:14;39375:58;39467:30;39462:2;39454:6;39450:15;39443:55;39258:247;:::o;39511:366::-;39653:3;39674:67;39738:2;39733:3;39674:67;:::i;:::-;39667:74;;39750:93;39839:3;39750:93;:::i;:::-;39868:2;39863:3;39859:12;39852:19;;39511:366;;;:::o;39883:419::-;40049:4;40087:2;40076:9;40072:18;40064:26;;40136:9;40130:4;40126:20;40122:1;40111:9;40107:17;40100:47;40164:131;40290:4;40164:131;:::i;:::-;40156:139;;39883:419;;;:::o;40308:223::-;40448:34;40444:1;40436:6;40432:14;40425:58;40517:6;40512:2;40504:6;40500:15;40493:31;40308:223;:::o;40537:366::-;40679:3;40700:67;40764:2;40759:3;40700:67;:::i;:::-;40693:74;;40776:93;40865:3;40776:93;:::i;:::-;40894:2;40889:3;40885:12;40878:19;;40537:366;;;:::o;40909:419::-;41075:4;41113:2;41102:9;41098:18;41090:26;;41162:9;41156:4;41152:20;41148:1;41137:9;41133:17;41126:47;41190:131;41316:4;41190:131;:::i;:::-;41182:139;;40909:419;;;:::o;41334:147::-;41435:11;41472:3;41457:18;;41334:147;;;;:::o;41509:314::-;41623:3;41644:88;41725:6;41720:3;41644:88;:::i;:::-;41637:95;;41742:43;41778:6;41773:3;41766:5;41742:43;:::i;:::-;41810:6;41805:3;41801:16;41794:23;;41509:314;;;;;:::o;41829:291::-;41969:3;41991:103;42090:3;42081:6;42073;41991:103;:::i;:::-;41984:110;;42111:3;42104:10;;41829:291;;;;;:::o;42126:236::-;42266:34;42262:1;42254:6;42250:14;42243:58;42335:19;42330:2;42322:6;42318:15;42311:44;42126:236;:::o;42368:366::-;42510:3;42531:67;42595:2;42590:3;42531:67;:::i;:::-;42524:74;;42607:93;42696:3;42607:93;:::i;:::-;42725:2;42720:3;42716:12;42709:19;;42368:366;;;:::o;42740:419::-;42906:4;42944:2;42933:9;42929:18;42921:26;;42993:9;42987:4;42983:20;42979:1;42968:9;42964:17;42957:47;43021:131;43147:4;43021:131;:::i;:::-;43013:139;;42740:419;;;:::o;43165:549::-;43342:4;43380:2;43369:9;43365:18;43357:26;;43393:71;43461:1;43450:9;43446:17;43437:6;43393:71;:::i;:::-;43474:72;43542:2;43531:9;43527:18;43518:6;43474:72;:::i;:::-;43593:9;43587:4;43583:20;43578:2;43567:9;43563:18;43556:48;43621:86;43702:4;43693:6;43685;43621:86;:::i;:::-;43613:94;;43165:549;;;;;;;:::o;43720:348::-;43760:7;43783:20;43801:1;43783:20;:::i;:::-;43778:25;;43817:20;43835:1;43817:20;:::i;:::-;43812:25;;44005:1;43937:66;43933:74;43930:1;43927:81;43922:1;43915:9;43908:17;43904:105;43901:131;;;44012:18;;:::i;:::-;43901:131;44060:1;44057;44053:9;44042:20;;43720:348;;;;:::o;44074:180::-;44122:77;44119:1;44112:88;44219:4;44216:1;44209:15;44243:4;44240:1;44233:15;44260:171;44299:3;44322:24;44340:5;44322:24;:::i;:::-;44313:33;;44368:4;44361:5;44358:15;44355:41;;;44376:18;;:::i;:::-;44355:41;44423:1;44416:5;44412:13;44405:20;;44260:171;;;:::o;44437:182::-;44577:34;44573:1;44565:6;44561:14;44554:58;44437:182;:::o;44625:366::-;44767:3;44788:67;44852:2;44847:3;44788:67;:::i;:::-;44781:74;;44864:93;44953:3;44864:93;:::i;:::-;44982:2;44977:3;44973:12;44966:19;;44625:366;;;:::o;44997:419::-;45163:4;45201:2;45190:9;45186:18;45178:26;;45250:9;45244:4;45240:20;45236:1;45225:9;45221:17;45214:47;45278:131;45404:4;45278:131;:::i;:::-;45270:139;;44997:419;;;:::o;45422:191::-;45462:4;45482:20;45500:1;45482:20;:::i;:::-;45477:25;;45516:20;45534:1;45516:20;:::i;:::-;45511:25;;45555:1;45552;45549:8;45546:34;;;45560:18;;:::i;:::-;45546:34;45605:1;45602;45598:9;45590:17;;45422:191;;;;:::o;45619:180::-;45667:77;45664:1;45657:88;45764:4;45761:1;45754:15;45788:4;45785:1;45778:15", - "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\n\n/**\n * MultiSigWallet with timelocker\n */\ncontract BEMultiSigWallet is AccessControlEnumerable {\n bytes32 public constant TIMELOCK_ADMIN_ROLE =\n keccak256(\"TIMELOCK_ADMIN_ROLE\");\n bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n mapping(bytes32 => uint256) private _timestamps;\n mapping(bytes32 => mapping(address => bool)) public confirmations;\n uint256 public minDelay;\n uint256 public required;\n\n /**\n * @dev Emitted when a call is scheduled as part of operation `id`.\n */\n event CallScheduled(\n bytes32 indexed id,\n uint256 indexed index,\n address target,\n uint256 value,\n bytes data,\n bytes32 predecessor,\n uint256 delay\n );\n\n /**\n * @dev Emitted when a call is performed as part of operation `id`.\n */\n event CallExecuted(\n bytes32 indexed id,\n uint256 indexed index,\n address target,\n uint256 value,\n bytes data\n );\n\n /**\n * @dev Emitted when operation `id` is cancelled.\n */\n event Cancelled(bytes32 indexed id);\n\n event Confirmation(address indexed sender, bytes32 id);\n\n event Revocation(address indexed sender, bytes32 id);\n\n /**\n * @dev Emitted when the minimum delay for future operations is modified.\n */\n event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n /**\n * @dev Emitted when the number of required confimations is modified.\n */\n event RequirementChange(uint256 oldDuration, uint256 newDuration);\n\n modifier onlyWallet() {\n require(\n msg.sender == address(this),\n \"BEMultiSigWallet: caller must be wallet\"\n );\n _;\n }\n\n /**\n * @dev Initializes the contract with a given `minDelay`.\n */\n constructor(\n uint256 _minDelay,\n address[] memory proposers,\n address[] memory executors\n ) {\n _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n\n // deployer + self administration\n _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender());\n _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n // register proposers\n for (uint256 i = 0; i < proposers.length; ++i) {\n _setupRole(PROPOSER_ROLE, proposers[i]);\n }\n\n // register executors\n for (uint256 i = 0; i < executors.length; ++i) {\n _setupRole(EXECUTOR_ROLE, executors[i]);\n }\n\n minDelay = _minDelay;\n emit MinDelayChange(0, minDelay);\n }\n\n /**\n * @dev Modifier to make a function callable only by a certain role. In\n * addition to checking the sender's role, `address(0)` 's role is also\n * considered. Granting a role to `address(0)` is equivalent to enabling\n * this role for everyone.\n */\n modifier onlyRoleOrOpenRole(bytes32 role) {\n if (!hasRole(role, address(0))) {\n _checkRole(role, _msgSender());\n }\n _;\n }\n\n /**\n * @dev Contract might receive/hold ETH as part of the maintenance process.\n */\n receive() external payable {}\n\n /**\n * @dev Returns whether an id correspond to a registered operation. This\n * includes both Pending, Ready and Done operations.\n */\n function isOperation(bytes32 id) public view virtual returns (bool pending) {\n return getTimestamp(id) > 0;\n }\n\n /**\n * @dev Returns whether an operation is pending or not.\n */\n function isOperationPending(\n bytes32 id\n ) public view virtual returns (bool pending) {\n return getTimestamp(id) > _DONE_TIMESTAMP;\n }\n\n function isConfirmed(bytes32 id) public view returns (bool ready) {\n uint256 count = 0;\n uint256 executorCount = getRoleMemberCount(EXECUTOR_ROLE);\n for (uint256 i = 0; i < executorCount; i++) {\n if (confirmations[id][getRoleMember(EXECUTOR_ROLE, i)]) count += 1;\n if (count == required) return true;\n }\n }\n\n /**\n * @dev Returns whether an operation is ready or not.\n */\n function isOperationReady(\n bytes32 id\n ) public view virtual returns (bool ready) {\n uint256 timestamp = getTimestamp(id);\n return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n }\n\n /**\n * @dev Returns whether an operation is done or not.\n */\n function isOperationDone(bytes32 id) public view virtual returns (bool done) {\n return getTimestamp(id) == _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Returns the timestamp at with an operation becomes ready (0 for\n * unset operations, 1 for done operations).\n */\n function getTimestamp(\n bytes32 id\n ) public view virtual returns (uint256 timestamp) {\n return _timestamps[id];\n }\n\n /**\n * @dev Returns the identifier of an operation containing a single\n * transaction.\n */\n function hashOperation(\n address target,\n uint256 value,\n bytes calldata data,\n bytes32 predecessor,\n bytes32 salt\n ) public pure virtual returns (bytes32 hash) {\n return keccak256(abi.encode(target, value, data, predecessor, salt));\n }\n\n /**\n * @dev Returns the identifier of an operation containing a batch of\n * transactions.\n */\n function hashOperationBatch(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public pure virtual returns (bytes32 hash) {\n return keccak256(abi.encode(targets, values, datas, predecessor, salt));\n }\n\n /**\n * @dev Schedule an operation containing a single transaction.\n *\n * Emits a {CallScheduled} event.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function schedule(\n address target,\n uint256 value,\n bytes calldata data,\n bytes32 predecessor,\n bytes32 salt,\n uint256 delay\n ) public virtual onlyRole(PROPOSER_ROLE) {\n bytes32 id = hashOperation(target, value, data, predecessor, salt);\n _schedule(id, delay);\n emit CallScheduled(id, 0, target, value, data, predecessor, delay);\n }\n\n /**\n * @dev Schedule an operation containing a batch of transactions.\n *\n * Emits one {CallScheduled} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function scheduleBatch(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt,\n uint256 delay\n ) public virtual onlyRole(PROPOSER_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt);\n _schedule(id, delay);\n for (uint256 i = 0; i < targets.length; ++i) {\n emit CallScheduled(\n id,\n i,\n targets[i],\n values[i],\n datas[i],\n predecessor,\n delay\n );\n }\n }\n\n /**\n * @dev Schedule an operation that is to becomes valid after a given delay.\n */\n function _schedule(bytes32 id, uint256 delay) private {\n require(!isOperation(id), \"BEMultiSigWallet: operation already scheduled\");\n require(delay >= minDelay, \"BEMultiSigWallet: insufficient delay\");\n _timestamps[id] = block.timestamp + delay;\n }\n\n /**\n * @dev Cancel an operation.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function cancel(bytes32 id) public virtual onlyRole(PROPOSER_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation cannot be cancelled\"\n );\n delete _timestamps[id];\n\n emit Cancelled(id);\n }\n\n /**\n * @dev Allows an executor to confirm a transaction.\n * Requirements\n * - the caller must have the 'executor' role.\n */\n function confirmTransaction(\n bytes32 id\n ) public onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[id][msg.sender] = true;\n emit Confirmation(msg.sender, id);\n }\n\n /**\n * @dev Allows an executor to confirm multiple transactions.\n */\n function confirmTransactionBatch(\n bytes32[] calldata ids\n ) public onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n confirmTransaction(ids[i]);\n }\n }\n\n /**\n * @dev Allows an executor to revoke a confirmation for a transaction.\n * Requirements\n * - the caller must have the 'executor' role.\n */\n function revokeConfirmation(\n bytes32 id\n ) public onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[id][msg.sender] = false;\n emit Revocation(msg.sender, id);\n }\n\n /**\n * @dev Allows an executor to revoke multiple confirmations for a transaction.\n */\n function revokeConfirmationBatch(\n bytes32[] calldata ids\n ) public onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n revokeConfirmation(ids[i]);\n }\n }\n\n /**\n * @dev Execute an (ready) operation containing a single transaction.\n *\n * Emits a {CallExecuted} event.\n *\n * Requirements:\n *\n * - the caller must have the 'executor' role.\n */\n function execute(\n address target,\n uint256 value,\n bytes calldata data,\n bytes32 predecessor,\n bytes32 salt\n ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n bytes32 id = hashOperation(target, value, data, predecessor, salt);\n _beforeCall(id, predecessor);\n _call(id, 0, target, value, data);\n _afterCall(id);\n }\n\n /**\n * @dev Execute an (ready) operation containing a batch of transactions.\n *\n * Emits one {CallExecuted} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'executor' role.\n */\n function executeBatch(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt);\n _beforeCall(id, predecessor);\n for (uint256 i = 0; i < targets.length; ++i) {\n _call(id, i, targets[i], values[i], datas[i]);\n }\n _afterCall(id);\n }\n\n /**\n * @dev Checks before execution of an operation's calls.\n */\n function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n require(\n isConfirmed(id),\n \"BEMultiSigWallet: operation not reach required confirmations\"\n );\n require(\n predecessor == bytes32(0) || isOperationDone(predecessor),\n \"BEMultiSigWallet: missing dependency\"\n );\n }\n\n /**\n * @dev Checks after execution of an operation's calls.\n */\n function _afterCall(bytes32 id) private {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n _timestamps[id] = _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Execute an operation's call.\n *\n * Emits a {CallExecuted} event.\n */\n function _call(\n bytes32 id,\n uint256 index,\n address target,\n uint256 value,\n bytes calldata data\n ) private {\n (bool success, ) = target.call{value: value}(data);\n require(success, \"BEMultiSigWallet: underlying transaction reverted\");\n\n emit CallExecuted(id, index, target, value, data);\n }\n\n /**\n * @dev Changes the minimum wallet duration for future operations.\n *\n * Emits a {MinDelayChange} event.\n *\n * Requirements:\n *\n * - the caller must be the wallet itself. This can only be achieved by scheduling and later executing\n * an operation where the wallet is the target and the data is the ABI-encoded call to this function.\n */\n function changeDelay(uint256 _minDelay) external virtual onlyWallet {\n emit MinDelayChange(minDelay, _minDelay);\n minDelay = _minDelay;\n }\n\n /**\n * @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n * @param _required Number of required confirmations.\n */\n function changeRequirement(uint256 _required) external virtual onlyWallet {\n emit RequirementChange(required, _required);\n required = _required;\n }\n}\n", + "sourceMap": "168:12706:9:-:0;;;1969:974;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2111:55;275:32;;2111:13;;;:55;;:::i;:::-;2172:49;351:26;275:32;2172:13;;;:49;;:::i;:::-;2227;421:26;275:32;2227:13;;;:49;;:::i;:::-;2282:48;490:25;275:32;2282:13;;;:48;;:::i;:::-;2375:45;275:32;2407:12;:10;;;:12;;:::i;:::-;2375:10;;;:45;;:::i;:::-;2426:46;275:32;2466:4;2426:10;;;:46;;:::i;:::-;2510:9;2505:101;2529:9;:16;2525:1;:20;2505:101;;;2560:39;351:26;2586:9;2596:1;2586:12;;;;;;;;:::i;:::-;;;;;;;;2560:10;;;:39;;:::i;:::-;2547:3;;;;:::i;:::-;;;2505:101;;;;2644:9;2639:102;2663:10;:17;2659:1;:21;2639:102;;;2695:39;490:25;2720:10;2731:1;2720:13;;;;;;;;:::i;:::-;;;;;;;;2695:10;;;:39;;:::i;:::-;2682:3;;;;:::i;:::-;;;2639:102;;;;2778:9;2773:101;2797:9;:16;2793:1;:20;2773:101;;;2828:39;421:26;2854:9;2864:1;2854:12;;;;;;;;:::i;:::-;;;;;;;;2828:10;;;:39;;:::i;:::-;2815:3;;;;:::i;:::-;;;2773:101;;;;2891:9;2880:8;:20;;;;2911:27;2926:1;2929:8;;2911:27;;;;;;;:::i;:::-;;;;;;;;1969:974;;;;168:12706;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;6257:110:0:-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;;;;;:31;;;;:::i;:::-;;1978:166;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;;;:50;;:::i;:::-;7698:57;;7612:150;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:404:8:-;1760:4;1781:21;1791:3;1796:5;1781:9;;;:21;;:::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:117::-;803:1;800;793:12;817:102;858:6;909:2;905:7;900:2;893:5;889:14;885:28;875:38;;817:102;;;:::o;925:180::-;973:77;970:1;963:88;1070:4;1067:1;1060:15;1094:4;1091:1;1084:15;1111:281;1194:27;1216:4;1194:27;:::i;:::-;1186:6;1182:40;1324:6;1312:10;1309:22;1288:18;1276:10;1273:34;1270:62;1267:88;;;1335:18;;:::i;:::-;1267:88;1375:10;1371:2;1364:22;1154:238;1111:281;;:::o;1398:129::-;1432:6;1459:20;;:::i;:::-;1449:30;;1488:33;1516:4;1508:6;1488:33;:::i;:::-;1398:129;;;:::o;1533:311::-;1610:4;1700:18;1692:6;1689:30;1686:56;;;1722:18;;:::i;:::-;1686:56;1772:4;1764:6;1760:17;1752:25;;1832:4;1826;1822:15;1814:23;;1533:311;;;:::o;1850:117::-;1959:1;1956;1949:12;1973:126;2010:7;2050:42;2043:5;2039:54;2028:65;;1973:126;;;:::o;2105:96::-;2142:7;2171:24;2189:5;2171:24;:::i;:::-;2160:35;;2105:96;;;:::o;2207:122::-;2280:24;2298:5;2280:24;:::i;:::-;2273:5;2270:35;2260:63;;2319:1;2316;2309:12;2260:63;2207:122;:::o;2335:143::-;2392:5;2423:6;2417:13;2408:22;;2439:33;2466:5;2439:33;:::i;:::-;2335:143;;;;:::o;2501:732::-;2608:5;2633:81;2649:64;2706:6;2649:64;:::i;:::-;2633:81;:::i;:::-;2624:90;;2734:5;2763:6;2756:5;2749:21;2797:4;2790:5;2786:16;2779:23;;2850:4;2842:6;2838:17;2830:6;2826:30;2879:3;2871:6;2868:15;2865:122;;;2898:79;;:::i;:::-;2865:122;3013:6;2996:231;3030:6;3025:3;3022:15;2996:231;;;3105:3;3134:48;3178:3;3166:10;3134:48;:::i;:::-;3129:3;3122:61;3212:4;3207:3;3203:14;3196:21;;3072:155;3056:4;3051:3;3047:14;3040:21;;2996:231;;;3000:21;2614:619;;2501:732;;;;;:::o;3256:385::-;3338:5;3387:3;3380:4;3372:6;3368:17;3364:27;3354:122;;3395:79;;:::i;:::-;3354:122;3505:6;3499:13;3530:105;3631:3;3623:6;3616:4;3608:6;3604:17;3530:105;:::i;:::-;3521:114;;3344:297;3256:385;;;;:::o;3647:1429::-;3819:6;3827;3835;3843;3892:3;3880:9;3871:7;3867:23;3863:33;3860:120;;;3899:79;;:::i;:::-;3860:120;4019:1;4044:64;4100:7;4091:6;4080:9;4076:22;4044:64;:::i;:::-;4034:74;;3990:128;4178:2;4167:9;4163:18;4157:25;4209:18;4201:6;4198:30;4195:117;;;4231:79;;:::i;:::-;4195:117;4336:89;4417:7;4408:6;4397:9;4393:22;4336:89;:::i;:::-;4326:99;;4128:307;4495:2;4484:9;4480:18;4474:25;4526:18;4518:6;4515:30;4512:117;;;4548:79;;:::i;:::-;4512:117;4653:89;4734:7;4725:6;4714:9;4710:22;4653:89;:::i;:::-;4643:99;;4445:307;4812:2;4801:9;4797:18;4791:25;4843:18;4835:6;4832:30;4829:117;;;4865:79;;:::i;:::-;4829:117;4970:89;5051:7;5042:6;5031:9;5027:22;4970:89;:::i;:::-;4960:99;;4762:307;3647:1429;;;;;;;:::o;5082:180::-;5130:77;5127:1;5120:88;5227:4;5224:1;5217:15;5251:4;5248:1;5241:15;5268:180;5316:77;5313:1;5306:88;5413:4;5410:1;5403:15;5437:4;5434:1;5427:15;5454:233;5493:3;5516:24;5534:5;5516:24;:::i;:::-;5507:33;;5562:66;5555:5;5552:77;5549:103;;;5632:18;;:::i;:::-;5549:103;5679:1;5672:5;5668:13;5661:20;;5454:233;;;:::o;5693:85::-;5738:7;5767:5;5756:16;;5693:85;;;:::o;5784:60::-;5812:3;5833:5;5826:12;;5784:60;;;:::o;5850:158::-;5908:9;5941:61;5959:42;5968:32;5994:5;5968:32;:::i;:::-;5959:42;:::i;:::-;5941:61;:::i;:::-;5928:74;;5850:158;;;:::o;6014:147::-;6109:45;6148:5;6109:45;:::i;:::-;6104:3;6097:58;6014:147;;:::o;6167:118::-;6254:24;6272:5;6254:24;:::i;:::-;6249:3;6242:37;6167:118;;:::o;6291:348::-;6420:4;6458:2;6447:9;6443:18;6435:26;;6471:79;6547:1;6536:9;6532:17;6523:6;6471:79;:::i;:::-;6560:72;6628:2;6617:9;6613:18;6604:6;6560:72;:::i;:::-;6291:348;;;;;:::o;168:12706:9:-;;;;;;;", + "deployedSourceMap": "168:12706:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5975:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;634:212:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;381:66:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;225:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9652:355;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4352:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:130:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3616:114:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5404:214:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9249:197:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12398:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3804:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8518:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3951:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8156:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5122:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6571:739;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;311:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1431:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5484:291:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12718:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;451:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7787:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;698:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4896:123:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;725:23:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10247:668;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8871:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5975:362;351:26;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;6168:10:9::1;6181:53;6195:6;6203:5;6210:4;;6216:11;6229:4;6181:13;:53::i;:::-;6168:66;;6240:20;6250:2;6254:5;6240:9;:20::i;:::-;6289:1;6285:2;6271:61;6292:6;6300:5;6307:4;;6313:11;6326:5;6271:61;;;;;;;;;;;:::i;:::-;;;;;;;;6162:175;5975:362:::0;;;;;;;;:::o;634:212:1:-;719:4;757:42;742:57;;;:11;:57;;;;:97;;;;803:36;827:11;803:23;:36::i;:::-;742:97;735:104;;634:212;;;:::o;381:66:9:-;421:26;381:66;:::o;629:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;225:82::-;275:32;225:82;:::o;9652:355::-;421:26;3264:25;3272:4;3286:1;3264:7;:25::i;:::-;3259:77;;3299:30;3310:4;3316:12;:10;:12::i;:::-;3299:10;:30::i;:::-;3259:77;9843:10:::1;9856:53;9870:6;9878:5;9885:4;;9891:11;9904:4;9856:13;:53::i;:::-;9843:66;;9915:28;9927:2;9931:11;9915;:28::i;:::-;9949:33;9955:2;9959:1;9962:6;9970:5;9977:4;;9949:5;:33::i;:::-;9988:14;9999:2;9988:10;:14::i;:::-;9837:170;9652:355:::0;;;;;;;:::o;4352:206::-;4427:10;4445:17;4465:16;4478:2;4465:12;:16::i;:::-;4445:36;;571:1;4494:9;:27;:59;;;;;4538:15;4525:9;:28;;4494:59;4487:66;;;4352:206;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4629:130:9:-;4695:9;571:1;4719:16;4732:2;4719:12;:16::i;:::-;:35;4712:42;;4629:130;;;:::o;4387:145:0:-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;3616:114:9:-;3678:12;3724:1;3705:16;3718:2;3705:12;:16::i;:::-;:20;3698:27;;3616:114;;;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;9249:197:9:-;490:25;3264;3272:4;3286:1;3264:7;:25::i;:::-;3259:77;;3299:30;3310:4;3316:12;:10;:12::i;:::-;3299:10;:30::i;:::-;3259:77;9365:9:::1;9360:82;9384:3;;:10;;9380:1;:14;9360:82;;;9409:26;9428:3;;9432:1;9428:6;;;;;;;:::i;:::-;;;;;;;;9409:18;:26::i;:::-;9396:3;;;;:::i;:::-;;;9360:82;;;;9249:197:::0;;;:::o;12398:145::-;1821:4;1799:27;;:10;:27;;;1784:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;12477:35:::1;12492:8;;12502:9;12477:35;;;;;;;:::i;:::-;;;;;;;;12529:9;12518:8;:20;;;;12398:145:::0;:::o;3804:143::-;3881:12;571:1;3908:16;3921:2;3908:12;:16::i;:::-;:34;3901:41;;3804:143;;;:::o;8518:197::-;490:25;3264;3272:4;3286:1;3264:7;:25::i;:::-;3259:77;;3299:30;3310:4;3316:12;:10;:12::i;:::-;3299:10;:30::i;:::-;3259:77;8634:9:::1;8629:82;8653:3;;:10;;8649:1;:14;8629:82;;;8678:26;8697:3;;8701:1;8697:6;;;;;;;:::i;:::-;;;;;;;;8678:18;:26::i;:::-;8665:3;;;;:::i;:::-;;;8629:82;;;;8518:197:::0;;;:::o;3951:329::-;4005:10;4023:13;4039:1;4023:17;;4046:21;4070:33;421:26;4070:18;:33::i;:::-;4046:57;;4114:9;4109:167;4133:13;4129:1;:17;4109:167;;;4165:13;:17;4179:2;4165:17;;;;;;;;;;;:50;4183:31;421:26;4212:1;4183:13;:31::i;:::-;4165:50;;;;;;;;;;;;;;;;;;;;;;;;;4161:66;;;4226:1;4217:10;;;;;:::i;:::-;;;4161:66;4248:8;;4239:5;:17;4235:34;;;4265:4;4258:11;;;;;;;4235:34;4148:3;;;;;:::i;:::-;;;;4109:167;;;;4017:263;;3951:329;;;;:::o;8156:282::-;490:25;3264;3272:4;3286:1;3264:7;:25::i;:::-;3259:77;;3299:30;3310:4;3316:12;:10;:12::i;:::-;3299:10;:30::i;:::-;3259:77;8265:22:::1;8284:2;8265:18;:22::i;:::-;8250:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8390:4;8358:13;:17;8372:2;8358:17;;;;;;;;;;;:29;8376:10;8358:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8418:10;8405:28;;;8430:2;8405:28;;;;;;:::i;:::-;;;;;;;;8156:282:::0;;:::o;5122:256::-;5285:12;5333:6;5341:5;5348:4;;5354:11;5367:4;5322:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5312:61;;;;;;5305:68;;5122:256;;;;;;;;:::o;6571:739::-;351:26;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;6829:6:9::1;;:13;;6811:7;;:14;;:31;6796:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;6930:5;;:12;;6912:7;;:14;;:30;6897:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;6998:10;7011:61;7030:7;;7039:6;;7047:5;;7054:11;7067:4;7011:18;:61::i;:::-;6998:74;;7078:20;7088:2;7092:5;7078:9;:20::i;:::-;7109:9;7104:202;7128:7;;:14;;7124:1;:18;7104:202;;;7197:1;7185:2;7162:137;7208:7;;7216:1;7208:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7228:6;;7235:1;7228:9;;;;;;;:::i;:::-;;;;;;;;7247:5;;7253:1;7247:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;7265:11;7286:5;7162:137;;;;;;;;;;;:::i;:::-;;;;;;;;7144:3;;;;:::i;:::-;;;7104:202;;;;6790:520;6571:739:::0;;;;;;;;;;:::o;311:66::-;351:26;311:66;:::o;1431:151:1:-;1521:7;1547:28;1569:5;1547:12;:18;1560:4;1547:18;;;;;;;;;;;:21;;:28;;;;:::i;:::-;1540:35;;1431:151;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;2027:49::-;2072:4;2027:49;;;:::o;5484:291:9:-;5679:12;5727:7;;5736:6;;5744:5;;5751:11;5764:4;5716:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5706:64;;;;;;5699:71;;5484:291;;;;;;;;;;:::o;12718:154::-;1821:4;1799:27;;:10;:27;;;1784:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;12803:38:::1;12821:8;;12831:9;12803:38;;;;;;;:::i;:::-;;;;;;;;12858:9;12847:8;:20;;;;12718:154:::0;:::o;451:64::-;490:25;451:64;:::o;7787:231::-;351:26;2505:30:0;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;7875:22:9::1;7894:2;7875:18;:22::i;:::-;7860:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;7973:11;:15;7985:2;7973:15;;;;;;;;;;;7966:22;;;8010:2;8000:13;;;;;;;;;;7787:231:::0;;:::o;698:23::-;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::o;4896:123:9:-;4967:17;4999:11;:15;5011:2;4999:15;;;;;;;;;;;;4992:22;;4896:123;;;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;725:23:9:-;;;;:::o;10247:668::-;421:26;3264:25;3272:4;3286:1;3264:7;:25::i;:::-;3259:77;;3299:30;3310:4;3316:12;:10;:12::i;:::-;3299:10;:30::i;:::-;3259:77;10503:6:::1;;:13;;10485:7;;:14;;:31;10470:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;10604:5;;:12;;10586:7;;:14;;:30;10571:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10672:10;10685:61;10704:7;;10713:6;;10721:5;;10728:11;10741:4;10685:18;:61::i;:::-;10672:74;;10752:28;10764:2;10768:11;10752;:28::i;:::-;10791:9;10786:105;10810:7;;:14;;10806:1;:18;10786:105;;;10839:45;10845:2;10849:1;10852:7;;10860:1;10852:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10864:6;;10871:1;10864:9;;;;;;;:::i;:::-;;;;;;;;10875:5;;10881:1;10875:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;10839:5;:45::i;:::-;10826:3;;;;:::i;:::-;;;10786:105;;;;10896:14;10907:2;10896:10;:14::i;:::-;10464:451;10247:668:::0;;;;;;;;;:::o;8871:281::-;490:25;3264;3272:4;3286:1;3264:7;:25::i;:::-;3259:77;;3299:30;3310:4;3316:12;:10;:12::i;:::-;3299:10;:30::i;:::-;3259:77;8980:22:::1;8999:2;8980:18;:22::i;:::-;8965:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9105:5;9073:13;:17;9087:2;9073:17;;;;;;;;;;;:29;9091:10;9073:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9132:10;9121:26;;;9144:2;9121:26;;;;;;:::i;:::-;;;;;;;;8871:281:::0;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;7404:258:9:-;7473:15;7485:2;7473:11;:15::i;:::-;7472:16;7464:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7561:8;;7552:5;:17;;7544:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7652:5;7634:15;:23;;;;:::i;:::-;7616:11;:15;7628:2;7616:15;;;;;;;;;;;:41;;;;7404:258;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;10990:393:9:-;11071:20;11088:2;11071:16;:20::i;:::-;11063:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11157:15;11169:2;11157:11;:15::i;:::-;11142:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;11292:1;11284:10;;11269:11;:25;:57;;;;11298:28;11314:11;11298:15;:28::i;:::-;11269:57;11254:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;10990:393;;:::o;11715:318::-;11848:12;11866:6;:11;;11885:5;11892:4;;11866:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11847:50;;;11911:7;11903:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12001:5;11997:2;11984:44;12008:6;12016:5;12023:4;;11984:44;;;;;;;;;:::i;:::-;;;;;;;;11841:192;11715:318;;;;;;:::o;11457:163::-;11511:20;11528:2;11511:16;:20::i;:::-;11503:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;571:1;11582:11;:15;11594:2;11582:15;;;;;;;;;;;:33;;;;11457:163;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;:31;;;;:::i;:::-;;1978:166;;:::o;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:34;2389:7;2363:12;:18;2376:4;2363:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;2233:171;;:::o;8870:156:8:-;8944:7;8994:22;8998:3;:10;;9010:5;8994:3;:22::i;:::-;8986:31;;8963:56;;8870:156;;;;:::o;8413:115::-;8476:7;8502:19;8510:3;:10;;8502:7;:19::i;:::-;8495:26;;8413:115;;;:::o;1697:404::-;1760:4;1781:21;1791:3;1796:5;1781:9;:21::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;1588:441:5:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;829:155:6:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;7219:234:0:-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;7930:156:8:-;8003:4;8026:53;8034:3;:10;;8070:5;8054:23;;8046:32;;8026:7;:53::i;:::-;8019:60;;7930:156;;;;:::o;4395:118::-;4462:7;4488:3;:11;;4500:5;4488:18;;;;;;;;:::i;:::-;;;;;;;;;;4481:25;;4395:118;;;;:::o;3946:107::-;4002:7;4028:3;:11;;:18;;;;4021:25;;3946:107;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;2269:1388::-;2335:4;2451:18;2472:3;:12;;:19;2485:5;2472:19;;;;;;;;;;;;2451:40;;2520:1;2506:10;:15;2502:1149;;2875:21;2912:1;2899:10;:14;;;;:::i;:::-;2875:38;;2927:17;2968:1;2947:3;:11;;:18;;;;:22;;;;:::i;:::-;2927:42;;3001:13;2988:9;:26;2984:398;;3034:17;3054:3;:11;;3066:9;3054:22;;;;;;;;:::i;:::-;;;;;;;;;;3034:42;;3205:9;3176:3;:11;;3188:13;3176:26;;;;;;;;:::i;:::-;;;;;;;;;:38;;;;3314:10;3288:3;:12;;:23;3301:9;3288:23;;;;;;;;;;;:36;;;;3016:366;2984:398;3460:3;:11;;:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3552:3;:12;;:19;3565:5;3552:19;;;;;;;;;;;3545:26;;;3593:4;3586:11;;;;;;;2502:1149;3635:5;3628:12;;;2269:1388;;;;;:::o;88:117:10:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:77::-;2174:7;2203:5;2192:16;;2137:77;;;:::o;2220:122::-;2293:24;2311:5;2293:24;:::i;:::-;2286:5;2283:35;2273:63;;2332:1;2329;2322:12;2273:63;2220:122;:::o;2348:139::-;2394:5;2432:6;2419:20;2410:29;;2448:33;2475:5;2448:33;:::i;:::-;2348:139;;;;:::o;2493:1255::-;2608:6;2616;2624;2632;2640;2648;2656;2705:3;2693:9;2684:7;2680:23;2676:33;2673:120;;;2712:79;;:::i;:::-;2673:120;2832:1;2857:53;2902:7;2893:6;2882:9;2878:22;2857:53;:::i;:::-;2847:63;;2803:117;2959:2;2985:53;3030:7;3021:6;3010:9;3006:22;2985:53;:::i;:::-;2975:63;;2930:118;3115:2;3104:9;3100:18;3087:32;3146:18;3138:6;3135:30;3132:117;;;3168:79;;:::i;:::-;3132:117;3281:64;3337:7;3328:6;3317:9;3313:22;3281:64;:::i;:::-;3263:82;;;;3058:297;3394:2;3420:53;3465:7;3456:6;3445:9;3441:22;3420:53;:::i;:::-;3410:63;;3365:118;3522:3;3549:53;3594:7;3585:6;3574:9;3570:22;3549:53;:::i;:::-;3539:63;;3493:119;3651:3;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3622:119;2493:1255;;;;;;;;;;:::o;3754:149::-;3790:7;3830:66;3823:5;3819:78;3808:89;;3754:149;;;:::o;3909:120::-;3981:23;3998:5;3981:23;:::i;:::-;3974:5;3971:34;3961:62;;4019:1;4016;4009:12;3961:62;3909:120;:::o;4035:137::-;4080:5;4118:6;4105:20;4096:29;;4134:32;4160:5;4134:32;:::i;:::-;4035:137;;;;:::o;4178:327::-;4236:6;4285:2;4273:9;4264:7;4260:23;4256:32;4253:119;;;4291:79;;:::i;:::-;4253:119;4411:1;4436:52;4480:7;4471:6;4460:9;4456:22;4436:52;:::i;:::-;4426:62;;4382:116;4178:327;;;;:::o;4511:90::-;4545:7;4588:5;4581:13;4574:21;4563:32;;4511:90;;;:::o;4607:109::-;4688:21;4703:5;4688:21;:::i;:::-;4683:3;4676:34;4607:109;;:::o;4722:210::-;4809:4;4847:2;4836:9;4832:18;4824:26;;4860:65;4922:1;4911:9;4907:17;4898:6;4860:65;:::i;:::-;4722:210;;;;:::o;4938:118::-;5025:24;5043:5;5025:24;:::i;:::-;5020:3;5013:37;4938:118;;:::o;5062:222::-;5155:4;5193:2;5182:9;5178:18;5170:26;;5206:71;5274:1;5263:9;5259:17;5250:6;5206:71;:::i;:::-;5062:222;;;;:::o;5290:474::-;5358:6;5366;5415:2;5403:9;5394:7;5390:23;5386:32;5383:119;;;5421:79;;:::i;:::-;5383:119;5541:1;5566:53;5611:7;5602:6;5591:9;5587:22;5566:53;:::i;:::-;5556:63;;5512:117;5668:2;5694:53;5739:7;5730:6;5719:9;5715:22;5694:53;:::i;:::-;5684:63;;5639:118;5290:474;;;;;:::o;5770:1109::-;5876:6;5884;5892;5900;5908;5916;5965:3;5953:9;5944:7;5940:23;5936:33;5933:120;;;5972:79;;:::i;:::-;5933:120;6092:1;6117:53;6162:7;6153:6;6142:9;6138:22;6117:53;:::i;:::-;6107:63;;6063:117;6219:2;6245:53;6290:7;6281:6;6270:9;6266:22;6245:53;:::i;:::-;6235:63;;6190:118;6375:2;6364:9;6360:18;6347:32;6406:18;6398:6;6395:30;6392:117;;;6428:79;;:::i;:::-;6392:117;6541:64;6597:7;6588:6;6577:9;6573:22;6541:64;:::i;:::-;6523:82;;;;6318:297;6654:2;6680:53;6725:7;6716:6;6705:9;6701:22;6680:53;:::i;:::-;6670:63;;6625:118;6782:3;6809:53;6854:7;6845:6;6834:9;6830:22;6809:53;:::i;:::-;6799:63;;6753:119;5770:1109;;;;;;;;:::o;6885:329::-;6944:6;6993:2;6981:9;6972:7;6968:23;6964:32;6961:119;;;6999:79;;:::i;:::-;6961:119;7119:1;7144:53;7189:7;7180:6;7169:9;7165:22;7144:53;:::i;:::-;7134:63;;7090:117;6885:329;;;;:::o;7237:568::-;7310:8;7320:6;7370:3;7363:4;7355:6;7351:17;7347:27;7337:122;;7378:79;;:::i;:::-;7337:122;7491:6;7478:20;7468:30;;7521:18;7513:6;7510:30;7507:117;;;7543:79;;:::i;:::-;7507:117;7657:4;7649:6;7645:17;7633:29;;7711:3;7703:4;7695:6;7691:17;7681:8;7677:32;7674:41;7671:128;;;7718:79;;:::i;:::-;7671:128;7237:568;;;;;:::o;7811:559::-;7897:6;7905;7954:2;7942:9;7933:7;7929:23;7925:32;7922:119;;;7960:79;;:::i;:::-;7922:119;8108:1;8097:9;8093:17;8080:31;8138:18;8130:6;8127:30;8124:117;;;8160:79;;:::i;:::-;8124:117;8273:80;8345:7;8336:6;8325:9;8321:22;8273:80;:::i;:::-;8255:98;;;;8051:312;7811:559;;;;;:::o;8376:329::-;8435:6;8484:2;8472:9;8463:7;8459:23;8455:32;8452:119;;;8490:79;;:::i;:::-;8452:119;8610:1;8635:53;8680:7;8671:6;8660:9;8656:22;8635:53;:::i;:::-;8625:63;;8581:117;8376:329;;;;:::o;8728:568::-;8801:8;8811:6;8861:3;8854:4;8846:6;8842:17;8838:27;8828:122;;8869:79;;:::i;:::-;8828:122;8982:6;8969:20;8959:30;;9012:18;9004:6;9001:30;8998:117;;;9034:79;;:::i;:::-;8998:117;9148:4;9140:6;9136:17;9124:29;;9202:3;9194:4;9186:6;9182:17;9172:8;9168:32;9165:41;9162:128;;;9209:79;;:::i;:::-;9162:128;8728:568;;;;;:::o;9319:::-;9392:8;9402:6;9452:3;9445:4;9437:6;9433:17;9429:27;9419:122;;9460:79;;:::i;:::-;9419:122;9573:6;9560:20;9550:30;;9603:18;9595:6;9592:30;9589:117;;;9625:79;;:::i;:::-;9589:117;9739:4;9731:6;9727:17;9715:29;;9793:3;9785:4;9777:6;9773:17;9763:8;9759:32;9756:41;9753:128;;;9800:79;;:::i;:::-;9753:128;9319:568;;;;;:::o;9908:579::-;9992:8;10002:6;10052:3;10045:4;10037:6;10033:17;10029:27;10019:122;;10060:79;;:::i;:::-;10019:122;10173:6;10160:20;10150:30;;10203:18;10195:6;10192:30;10189:117;;;10225:79;;:::i;:::-;10189:117;10339:4;10331:6;10327:17;10315:29;;10393:3;10385:4;10377:6;10373:17;10363:8;10359:32;10356:41;10353:128;;;10400:79;;:::i;:::-;10353:128;9908:579;;;;;:::o;10493:1769::-;10689:6;10697;10705;10713;10721;10729;10737;10745;10753;10802:3;10790:9;10781:7;10777:23;10773:33;10770:120;;;10809:79;;:::i;:::-;10770:120;10957:1;10946:9;10942:17;10929:31;10987:18;10979:6;10976:30;10973:117;;;11009:79;;:::i;:::-;10973:117;11122:80;11194:7;11185:6;11174:9;11170:22;11122:80;:::i;:::-;11104:98;;;;10900:312;11279:2;11268:9;11264:18;11251:32;11310:18;11302:6;11299:30;11296:117;;;11332:79;;:::i;:::-;11296:117;11445:80;11517:7;11508:6;11497:9;11493:22;11445:80;:::i;:::-;11427:98;;;;11222:313;11602:2;11591:9;11587:18;11574:32;11633:18;11625:6;11622:30;11619:117;;;11655:79;;:::i;:::-;11619:117;11768:91;11851:7;11842:6;11831:9;11827:22;11768:91;:::i;:::-;11750:109;;;;11545:324;11908:2;11934:53;11979:7;11970:6;11959:9;11955:22;11934:53;:::i;:::-;11924:63;;11879:118;12036:3;12063:53;12108:7;12099:6;12088:9;12084:22;12063:53;:::i;:::-;12053:63;;12007:119;12165:3;12192:53;12237:7;12228:6;12217:9;12213:22;12192:53;:::i;:::-;12182:63;;12136:119;10493:1769;;;;;;;;;;;:::o;12268:474::-;12336:6;12344;12393:2;12381:9;12372:7;12368:23;12364:32;12361:119;;;12399:79;;:::i;:::-;12361:119;12519:1;12544:53;12589:7;12580:6;12569:9;12565:22;12544:53;:::i;:::-;12534:63;;12490:117;12646:2;12672:53;12717:7;12708:6;12697:9;12693:22;12672:53;:::i;:::-;12662:63;;12617:118;12268:474;;;;;:::o;12748:118::-;12835:24;12853:5;12835:24;:::i;:::-;12830:3;12823:37;12748:118;;:::o;12872:222::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13016:71;13084:1;13073:9;13069:17;13060:6;13016:71;:::i;:::-;12872:222;;;;:::o;13100:1623::-;13287:6;13295;13303;13311;13319;13327;13335;13343;13392:3;13380:9;13371:7;13367:23;13363:33;13360:120;;;13399:79;;:::i;:::-;13360:120;13547:1;13536:9;13532:17;13519:31;13577:18;13569:6;13566:30;13563:117;;;13599:79;;:::i;:::-;13563:117;13712:80;13784:7;13775:6;13764:9;13760:22;13712:80;:::i;:::-;13694:98;;;;13490:312;13869:2;13858:9;13854:18;13841:32;13900:18;13892:6;13889:30;13886:117;;;13922:79;;:::i;:::-;13886:117;14035:80;14107:7;14098:6;14087:9;14083:22;14035:80;:::i;:::-;14017:98;;;;13812:313;14192:2;14181:9;14177:18;14164:32;14223:18;14215:6;14212:30;14209:117;;;14245:79;;:::i;:::-;14209:117;14358:91;14441:7;14432:6;14421:9;14417:22;14358:91;:::i;:::-;14340:109;;;;14135:324;14498:2;14524:53;14569:7;14560:6;14549:9;14545:22;14524:53;:::i;:::-;14514:63;;14469:118;14626:3;14653:53;14698:7;14689:6;14678:9;14674:22;14653:53;:::i;:::-;14643:63;;14597:119;13100:1623;;;;;;;;;;;:::o;14729:118::-;14816:24;14834:5;14816:24;:::i;:::-;14811:3;14804:37;14729:118;;:::o;14853:222::-;14946:4;14984:2;14973:9;14969:18;14961:26;;14997:71;15065:1;15054:9;15050:17;15041:6;14997:71;:::i;:::-;14853:222;;;;:::o;15081:168::-;15164:11;15198:6;15193:3;15186:19;15238:4;15233:3;15229:14;15214:29;;15081:168;;;;:::o;15255:154::-;15339:6;15334:3;15329;15316:30;15401:1;15392:6;15387:3;15383:16;15376:27;15255:154;;;:::o;15415:102::-;15456:6;15507:2;15503:7;15498:2;15491:5;15487:14;15483:28;15473:38;;15415:102;;;:::o;15545:301::-;15641:3;15662:70;15725:6;15720:3;15662:70;:::i;:::-;15655:77;;15742:43;15778:6;15773:3;15766:5;15742:43;:::i;:::-;15810:29;15832:6;15810:29;:::i;:::-;15805:3;15801:39;15794:46;;15545:301;;;;;:::o;15852:771::-;16085:4;16123:3;16112:9;16108:19;16100:27;;16137:71;16205:1;16194:9;16190:17;16181:6;16137:71;:::i;:::-;16218:72;16286:2;16275:9;16271:18;16262:6;16218:72;:::i;:::-;16337:9;16331:4;16327:20;16322:2;16311:9;16307:18;16300:48;16365:86;16446:4;16437:6;16429;16365:86;:::i;:::-;16357:94;;16461:72;16529:2;16518:9;16514:18;16505:6;16461:72;:::i;:::-;16543:73;16611:3;16600:9;16596:19;16587:6;16543:73;:::i;:::-;15852:771;;;;;;;;;:::o;16629:169::-;16713:11;16747:6;16742:3;16735:19;16787:4;16782:3;16778:14;16763:29;;16629:169;;;;:::o;16804:234::-;16944:34;16940:1;16932:6;16928:14;16921:58;17013:17;17008:2;17000:6;16996:15;16989:42;16804:234;:::o;17044:366::-;17186:3;17207:67;17271:2;17266:3;17207:67;:::i;:::-;17200:74;;17283:93;17372:3;17283:93;:::i;:::-;17401:2;17396:3;17392:12;17385:19;;17044:366;;;:::o;17416:419::-;17582:4;17620:2;17609:9;17605:18;17597:26;;17669:9;17663:4;17659:20;17655:1;17644:9;17640:17;17633:47;17697:131;17823:4;17697:131;:::i;:::-;17689:139;;17416:419;;;:::o;17841:180::-;17889:77;17886:1;17879:88;17986:4;17983:1;17976:15;18010:4;18007:1;18000:15;18027:180;18075:77;18072:1;18065:88;18172:4;18169:1;18162:15;18196:4;18193:1;18186:15;18213:233;18252:3;18275:24;18293:5;18275:24;:::i;:::-;18266:33;;18321:66;18314:5;18311:77;18308:103;;;18391:18;;:::i;:::-;18308:103;18438:1;18431:5;18427:13;18420:20;;18213:233;;;:::o;18452:226::-;18592:34;18588:1;18580:6;18576:14;18569:58;18661:9;18656:2;18648:6;18644:15;18637:34;18452:226;:::o;18684:366::-;18826:3;18847:67;18911:2;18906:3;18847:67;:::i;:::-;18840:74;;18923:93;19012:3;18923:93;:::i;:::-;19041:2;19036:3;19032:12;19025:19;;18684:366;;;:::o;19056:419::-;19222:4;19260:2;19249:9;19245:18;19237:26;;19309:9;19303:4;19299:20;19295:1;19284:9;19280:17;19273:47;19337:131;19463:4;19337:131;:::i;:::-;19329:139;;19056:419;;;:::o;19481:332::-;19602:4;19640:2;19629:9;19625:18;19617:26;;19653:71;19721:1;19710:9;19706:17;19697:6;19653:71;:::i;:::-;19734:72;19802:2;19791:9;19787:18;19778:6;19734:72;:::i;:::-;19481:332;;;;;:::o;19819:305::-;19859:3;19878:20;19896:1;19878:20;:::i;:::-;19873:25;;19912:20;19930:1;19912:20;:::i;:::-;19907:25;;20066:1;19998:66;19994:74;19991:1;19988:81;19985:107;;;20072:18;;:::i;:::-;19985:107;20116:1;20113;20109:9;20102:16;;19819:305;;;;:::o;20130:236::-;20270:34;20266:1;20258:6;20254:14;20247:58;20339:19;20334:2;20326:6;20322:15;20315:44;20130:236;:::o;20372:366::-;20514:3;20535:67;20599:2;20594:3;20535:67;:::i;:::-;20528:74;;20611:93;20700:3;20611:93;:::i;:::-;20729:2;20724:3;20720:12;20713:19;;20372:366;;;:::o;20744:419::-;20910:4;20948:2;20937:9;20933:18;20925:26;;20997:9;20991:4;20987:20;20983:1;20972:9;20968:17;20961:47;21025:131;21151:4;21025:131;:::i;:::-;21017:139;;20744:419;;;:::o;21169:771::-;21402:4;21440:3;21429:9;21425:19;21417:27;;21454:71;21522:1;21511:9;21507:17;21498:6;21454:71;:::i;:::-;21535:72;21603:2;21592:9;21588:18;21579:6;21535:72;:::i;:::-;21654:9;21648:4;21644:20;21639:2;21628:9;21624:18;21617:48;21682:86;21763:4;21754:6;21746;21682:86;:::i;:::-;21674:94;;21778:72;21846:2;21835:9;21831:18;21822:6;21778:72;:::i;:::-;21860:73;21928:3;21917:9;21913:19;21904:6;21860:73;:::i;:::-;21169:771;;;;;;;;;:::o;21946:220::-;22086:34;22082:1;22074:6;22070:14;22063:58;22155:3;22150:2;22142:6;22138:15;22131:28;21946:220;:::o;22172:366::-;22314:3;22335:67;22399:2;22394:3;22335:67;:::i;:::-;22328:74;;22411:93;22500:3;22411:93;:::i;:::-;22529:2;22524:3;22520:12;22513:19;;22172:366;;;:::o;22544:419::-;22710:4;22748:2;22737:9;22733:18;22725:26;;22797:9;22791:4;22787:20;22783:1;22772:9;22768:17;22761:47;22825:131;22951:4;22825:131;:::i;:::-;22817:139;;22544:419;;;:::o;22969:329::-;23028:6;23077:2;23065:9;23056:7;23052:23;23048:32;23045:119;;;23083:79;;:::i;:::-;23045:119;23203:1;23228:53;23273:7;23264:6;23253:9;23249:22;23228:53;:::i;:::-;23218:63;;23174:117;22969:329;;;;:::o;23304:117::-;23413:1;23410;23403:12;23427:117;23536:1;23533;23526:12;23550:117;23659:1;23656;23649:12;23673:724;23750:4;23756:6;23812:11;23799:25;23912:1;23906:4;23902:12;23891:8;23875:14;23871:29;23867:48;23847:18;23843:73;23833:168;;23920:79;;:::i;:::-;23833:168;24032:18;24022:8;24018:33;24010:41;;24084:4;24071:18;24061:28;;24112:18;24104:6;24101:30;24098:117;;;24134:79;;:::i;:::-;24098:117;24242:2;24236:4;24232:13;24224:21;;24299:4;24291:6;24287:17;24271:14;24267:38;24261:4;24257:49;24254:136;;;24309:79;;:::i;:::-;24254:136;23763:634;23673:724;;;;;:::o;24403:184::-;24502:11;24536:6;24531:3;24524:19;24576:4;24571:3;24567:14;24552:29;;24403:184;;;;:::o;24593:102::-;24662:4;24685:3;24677:11;;24593:102;;;:::o;24701:108::-;24778:24;24796:5;24778:24;:::i;:::-;24773:3;24766:37;24701:108;;:::o;24815:179::-;24884:10;24905:46;24947:3;24939:6;24905:46;:::i;:::-;24983:4;24978:3;24974:14;24960:28;;24815:179;;;;:::o;25000:122::-;25052:5;25077:39;25112:2;25107:3;25103:12;25098:3;25077:39;:::i;:::-;25068:48;;25000:122;;;;:::o;25128:115::-;25200:4;25232;25227:3;25223:14;25215:22;;25128:115;;;:::o;25279:699::-;25408:3;25431:86;25510:6;25505:3;25431:86;:::i;:::-;25424:93;;25541:58;25593:5;25541:58;:::i;:::-;25622:7;25653:1;25638:315;25663:6;25660:1;25657:13;25638:315;;;25733:42;25768:6;25759:7;25733:42;:::i;:::-;25795:63;25854:3;25839:13;25795:63;:::i;:::-;25788:70;;25881:62;25936:6;25881:62;:::i;:::-;25871:72;;25698:255;25685:1;25682;25678:9;25673:14;;25638:315;;;25642:14;25969:3;25962:10;;25413:565;;25279:699;;;;;:::o;25984:184::-;26083:11;26117:6;26112:3;26105:19;26157:4;26152:3;26148:14;26133:29;;25984:184;;;;:::o;26174:117::-;26283:1;26280;26273:12;26327:537;26455:3;26476:86;26555:6;26550:3;26476:86;:::i;:::-;26469:93;;26586:66;26578:6;26575:78;26572:165;;;26656:79;;:::i;:::-;26572:165;26768:4;26760:6;26756:17;26746:27;;26783:43;26819:6;26814:3;26807:5;26783:43;:::i;:::-;26851:6;26846:3;26842:16;26835:23;;26327:537;;;;;:::o;26870:193::-;26978:11;27012:6;27007:3;27000:19;27052:4;27047:3;27043:14;27028:29;;26870:193;;;;:::o;27069:113::-;27149:4;27172:3;27164:11;;27069:113;;;:::o;27188:158::-;27261:11;27295:6;27290:3;27283:19;27335:4;27330:3;27326:14;27311:29;;27188:158;;;;:::o;27374:281::-;27460:3;27481:60;27534:6;27529:3;27481:60;:::i;:::-;27474:67;;27551:43;27587:6;27582:3;27575:5;27551:43;:::i;:::-;27619:29;27641:6;27619:29;:::i;:::-;27614:3;27610:39;27603:46;;27374:281;;;;;:::o;27661:212::-;27758:10;27793:74;27863:3;27855:6;27847;27793:74;:::i;:::-;27779:88;;27661:212;;;;;:::o;27879:117::-;27988:1;27985;27978:12;28002:117;28111:1;28108;28101:12;28125:117;28234:1;28231;28224:12;28248:714;28312:5;28319:6;28375:3;28362:17;28467:1;28461:4;28457:12;28446:8;28430:14;28426:29;28422:48;28402:18;28398:73;28388:168;;28475:79;;:::i;:::-;28388:168;28598:8;28578:18;28574:33;28565:42;;28640:5;28627:19;28617:29;;28675:4;28668:5;28664:16;28655:25;;28703:18;28695:6;28692:30;28689:117;;;28725:79;;:::i;:::-;28689:117;28864:4;28856:6;28852:17;28836:14;28832:38;28822:8;28818:53;28815:140;;;28874:79;;:::i;:::-;28815:140;28326:636;28248:714;;;;;:::o;28968:126::-;29051:4;29083;29078:3;29074:14;29066:22;;28968:126;;;:::o;29126:990::-;29275:3;29298:95;29386:6;29381:3;29298:95;:::i;:::-;29291:102;;29419:3;29464:4;29456:6;29452:17;29447:3;29443:27;29494:69;29557:5;29494:69;:::i;:::-;29586:7;29617:1;29602:469;29627:6;29624:1;29621:13;29602:469;;;29698:9;29692:4;29688:20;29683:3;29676:33;29758:53;29804:6;29795:7;29758:53;:::i;:::-;29832:99;29926:4;29911:13;29896;29832:99;:::i;:::-;29824:107;;29954:73;30020:6;29954:73;:::i;:::-;29944:83;;30056:4;30051:3;30047:14;30040:21;;29662:409;;29649:1;29646;29642:9;29637:14;;29602:469;;;29606:14;30087:4;30080:11;;30107:3;30100:10;;29280:836;;;;29126:990;;;;;:::o;30122:1217::-;30527:4;30565:3;30554:9;30550:19;30542:27;;30615:9;30609:4;30605:20;30601:1;30590:9;30586:17;30579:47;30643:118;30756:4;30747:6;30739;30643:118;:::i;:::-;30635:126;;30808:9;30802:4;30798:20;30793:2;30782:9;30778:18;30771:48;30836:118;30949:4;30940:6;30932;30836:118;:::i;:::-;30828:126;;31001:9;30995:4;30991:20;30986:2;30975:9;30971:18;30964:48;31029:138;31162:4;31153:6;31145;31029:138;:::i;:::-;31021:146;;31177:72;31245:2;31234:9;31230:18;31221:6;31177:72;:::i;:::-;31259:73;31327:3;31316:9;31312:19;31303:6;31259:73;:::i;:::-;30122:1217;;;;;;;;;;;:::o;31345:234::-;31485:34;31481:1;31473:6;31469:14;31462:58;31554:17;31549:2;31541:6;31537:15;31530:42;31345:234;:::o;31585:366::-;31727:3;31748:67;31812:2;31807:3;31748:67;:::i;:::-;31741:74;;31824:93;31913:3;31824:93;:::i;:::-;31942:2;31937:3;31933:12;31926:19;;31585:366;;;:::o;31957:419::-;32123:4;32161:2;32150:9;32146:18;32138:26;;32210:9;32204:4;32200:20;32196:1;32185:9;32181:17;32174:47;32238:131;32364:4;32238:131;:::i;:::-;32230:139;;31957:419;;;:::o;32382:148::-;32484:11;32521:3;32506:18;;32382:148;;;;:::o;32536:173::-;32676:25;32672:1;32664:6;32660:14;32653:49;32536:173;:::o;32715:402::-;32875:3;32896:85;32978:2;32973:3;32896:85;:::i;:::-;32889:92;;32990:93;33079:3;32990:93;:::i;:::-;33108:2;33103:3;33099:12;33092:19;;32715:402;;;:::o;33123:99::-;33175:6;33209:5;33203:12;33193:22;;33123:99;;;:::o;33228:307::-;33296:1;33306:113;33320:6;33317:1;33314:13;33306:113;;;33405:1;33400:3;33396:11;33390:18;33386:1;33381:3;33377:11;33370:39;33342:2;33339:1;33335:10;33330:15;;33306:113;;;33437:6;33434:1;33431:13;33428:101;;;33517:1;33508:6;33503:3;33499:16;33492:27;33428:101;33277:258;33228:307;;;:::o;33541:377::-;33647:3;33675:39;33708:5;33675:39;:::i;:::-;33730:89;33812:6;33807:3;33730:89;:::i;:::-;33723:96;;33828:52;33873:6;33868:3;33861:4;33854:5;33850:16;33828:52;:::i;:::-;33905:6;33900:3;33896:16;33889:23;;33651:267;33541:377;;;;:::o;33924:167::-;34064:19;34060:1;34052:6;34048:14;34041:43;33924:167;:::o;34097:402::-;34257:3;34278:85;34360:2;34355:3;34278:85;:::i;:::-;34271:92;;34372:93;34461:3;34372:93;:::i;:::-;34490:2;34485:3;34481:12;34474:19;;34097:402;;;:::o;34505:967::-;34887:3;34909:148;35053:3;34909:148;:::i;:::-;34902:155;;35074:95;35165:3;35156:6;35074:95;:::i;:::-;35067:102;;35186:148;35330:3;35186:148;:::i;:::-;35179:155;;35351:95;35442:3;35433:6;35351:95;:::i;:::-;35344:102;;35463:3;35456:10;;34505:967;;;;;:::o;35478:364::-;35566:3;35594:39;35627:5;35594:39;:::i;:::-;35649:71;35713:6;35708:3;35649:71;:::i;:::-;35642:78;;35729:52;35774:6;35769:3;35762:4;35755:5;35751:16;35729:52;:::i;:::-;35806:29;35828:6;35806:29;:::i;:::-;35801:3;35797:39;35790:46;;35570:272;35478:364;;;;:::o;35848:313::-;35961:4;35999:2;35988:9;35984:18;35976:26;;36048:9;36042:4;36038:20;36034:1;36023:9;36019:17;36012:47;36076:78;36149:4;36140:6;36076:78;:::i;:::-;36068:86;;35848:313;;;;:::o;36167:232::-;36307:34;36303:1;36295:6;36291:14;36284:58;36376:15;36371:2;36363:6;36359:15;36352:40;36167:232;:::o;36405:366::-;36547:3;36568:67;36632:2;36627:3;36568:67;:::i;:::-;36561:74;;36644:93;36733:3;36644:93;:::i;:::-;36762:2;36757:3;36753:12;36746:19;;36405:366;;;:::o;36777:419::-;36943:4;36981:2;36970:9;36966:18;36958:26;;37030:9;37024:4;37020:20;37016:1;37005:9;37001:17;36994:47;37058:131;37184:4;37058:131;:::i;:::-;37050:139;;36777:419;;;:::o;37202:223::-;37342:34;37338:1;37330:6;37326:14;37319:58;37411:6;37406:2;37398:6;37394:15;37387:31;37202:223;:::o;37431:366::-;37573:3;37594:67;37658:2;37653:3;37594:67;:::i;:::-;37587:74;;37670:93;37759:3;37670:93;:::i;:::-;37788:2;37783:3;37779:12;37772:19;;37431:366;;;:::o;37803:419::-;37969:4;38007:2;37996:9;37992:18;37984:26;;38056:9;38050:4;38046:20;38042:1;38031:9;38027:17;38020:47;38084:131;38210:4;38084:131;:::i;:::-;38076:139;;37803:419;;;:::o;38228:227::-;38368:34;38364:1;38356:6;38352:14;38345:58;38437:10;38432:2;38424:6;38420:15;38413:35;38228:227;:::o;38461:366::-;38603:3;38624:67;38688:2;38683:3;38624:67;:::i;:::-;38617:74;;38700:93;38789:3;38700:93;:::i;:::-;38818:2;38813:3;38809:12;38802:19;;38461:366;;;:::o;38833:419::-;38999:4;39037:2;39026:9;39022:18;39014:26;;39086:9;39080:4;39076:20;39072:1;39061:9;39057:17;39050:47;39114:131;39240:4;39114:131;:::i;:::-;39106:139;;38833:419;;;:::o;39258:247::-;39398:34;39394:1;39386:6;39382:14;39375:58;39467:30;39462:2;39454:6;39450:15;39443:55;39258:247;:::o;39511:366::-;39653:3;39674:67;39738:2;39733:3;39674:67;:::i;:::-;39667:74;;39750:93;39839:3;39750:93;:::i;:::-;39868:2;39863:3;39859:12;39852:19;;39511:366;;;:::o;39883:419::-;40049:4;40087:2;40076:9;40072:18;40064:26;;40136:9;40130:4;40126:20;40122:1;40111:9;40107:17;40100:47;40164:131;40290:4;40164:131;:::i;:::-;40156:139;;39883:419;;;:::o;40308:223::-;40448:34;40444:1;40436:6;40432:14;40425:58;40517:6;40512:2;40504:6;40500:15;40493:31;40308:223;:::o;40537:366::-;40679:3;40700:67;40764:2;40759:3;40700:67;:::i;:::-;40693:74;;40776:93;40865:3;40776:93;:::i;:::-;40894:2;40889:3;40885:12;40878:19;;40537:366;;;:::o;40909:419::-;41075:4;41113:2;41102:9;41098:18;41090:26;;41162:9;41156:4;41152:20;41148:1;41137:9;41133:17;41126:47;41190:131;41316:4;41190:131;:::i;:::-;41182:139;;40909:419;;;:::o;41334:147::-;41435:11;41472:3;41457:18;;41334:147;;;;:::o;41509:314::-;41623:3;41644:88;41725:6;41720:3;41644:88;:::i;:::-;41637:95;;41742:43;41778:6;41773:3;41766:5;41742:43;:::i;:::-;41810:6;41805:3;41801:16;41794:23;;41509:314;;;;;:::o;41829:291::-;41969:3;41991:103;42090:3;42081:6;42073;41991:103;:::i;:::-;41984:110;;42111:3;42104:10;;41829:291;;;;;:::o;42126:236::-;42266:34;42262:1;42254:6;42250:14;42243:58;42335:19;42330:2;42322:6;42318:15;42311:44;42126:236;:::o;42368:366::-;42510:3;42531:67;42595:2;42590:3;42531:67;:::i;:::-;42524:74;;42607:93;42696:3;42607:93;:::i;:::-;42725:2;42720:3;42716:12;42709:19;;42368:366;;;:::o;42740:419::-;42906:4;42944:2;42933:9;42929:18;42921:26;;42993:9;42987:4;42983:20;42979:1;42968:9;42964:17;42957:47;43021:131;43147:4;43021:131;:::i;:::-;43013:139;;42740:419;;;:::o;43165:549::-;43342:4;43380:2;43369:9;43365:18;43357:26;;43393:71;43461:1;43450:9;43446:17;43437:6;43393:71;:::i;:::-;43474:72;43542:2;43531:9;43527:18;43518:6;43474:72;:::i;:::-;43593:9;43587:4;43583:20;43578:2;43567:9;43563:18;43556:48;43621:86;43702:4;43693:6;43685;43621:86;:::i;:::-;43613:94;;43165:549;;;;;;;:::o;43720:348::-;43760:7;43783:20;43801:1;43783:20;:::i;:::-;43778:25;;43817:20;43835:1;43817:20;:::i;:::-;43812:25;;44005:1;43937:66;43933:74;43930:1;43927:81;43922:1;43915:9;43908:17;43904:105;43901:131;;;44012:18;;:::i;:::-;43901:131;44060:1;44057;44053:9;44042:20;;43720:348;;;;:::o;44074:180::-;44122:77;44119:1;44112:88;44219:4;44216:1;44209:15;44243:4;44240:1;44233:15;44260:171;44299:3;44322:24;44340:5;44322:24;:::i;:::-;44313:33;;44368:4;44361:5;44358:15;44355:41;;;44376:18;;:::i;:::-;44355:41;44423:1;44416:5;44412:13;44405:20;;44260:171;;;:::o;44437:182::-;44577:34;44573:1;44565:6;44561:14;44554:58;44437:182;:::o;44625:366::-;44767:3;44788:67;44852:2;44847:3;44788:67;:::i;:::-;44781:74;;44864:93;44953:3;44864:93;:::i;:::-;44982:2;44977:3;44973:12;44966:19;;44625:366;;;:::o;44997:419::-;45163:4;45201:2;45190:9;45186:18;45178:26;;45250:9;45244:4;45240:20;45236:1;45225:9;45221:17;45214:47;45278:131;45404:4;45278:131;:::i;:::-;45270:139;;44997:419;;;:::o;45422:191::-;45462:4;45482:20;45500:1;45482:20;:::i;:::-;45477:25;;45516:20;45534:1;45516:20;:::i;:::-;45511:25;;45555:1;45552;45549:8;45546:34;;;45560:18;;:::i;:::-;45546:34;45605:1;45602;45598:9;45590:17;;45422:191;;;;:::o;45619:180::-;45667:77;45664:1;45657:88;45764:4;45761:1;45754:15;45788:4;45785:1;45778:15", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\n\n/**\n * MultiSigWallet with timelocker\n */\ncontract BEMultiSigWallet is AccessControlEnumerable {\n bytes32 public constant TIMELOCK_ADMIN_ROLE =\n keccak256(\"TIMELOCK_ADMIN_ROLE\");\n bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n bytes32 public constant CONFIRM_ROLE = keccak256(\"CONFIRM_ROLE\");\n uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n mapping(bytes32 => uint256) private _timestamps;\n mapping(bytes32 => mapping(address => bool)) public confirmations;\n uint256 public minDelay;\n uint256 public required;\n\n /**\n * @dev Emitted when a call is scheduled as part of operation `id`.\n */\n event CallScheduled(\n bytes32 indexed id,\n uint256 indexed index,\n address target,\n uint256 value,\n bytes data,\n bytes32 predecessor,\n uint256 delay\n );\n\n /**\n * @dev Emitted when a call is performed as part of operation `id`.\n */\n event CallExecuted(\n bytes32 indexed id,\n uint256 indexed index,\n address target,\n uint256 value,\n bytes data\n );\n\n /**\n * @dev Emitted when operation `id` is cancelled.\n */\n event Cancelled(bytes32 indexed id);\n\n event Confirmation(address indexed sender, bytes32 id);\n\n event Revocation(address indexed sender, bytes32 id);\n\n /**\n * @dev Emitted when the minimum delay for future operations is modified.\n */\n event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n /**\n * @dev Emitted when the number of required confimations is modified.\n */\n event RequirementChange(uint256 oldDuration, uint256 newDuration);\n\n modifier onlyWallet() {\n require(\n msg.sender == address(this),\n \"BEMultiSigWallet: caller must be wallet\"\n );\n _;\n }\n\n /**\n * @dev Initializes the contract with a given `minDelay`.\n */\n constructor(\n uint256 _minDelay,\n address[] memory proposers,\n address[] memory confirmers,\n address[] memory executors\n ) {\n _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(CONFIRM_ROLE, TIMELOCK_ADMIN_ROLE);\n\n // deployer + self administration\n _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender());\n _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n // register proposers\n for (uint256 i = 0; i < proposers.length; ++i) {\n _setupRole(PROPOSER_ROLE, proposers[i]);\n }\n\n // register confirmers\n for (uint256 i = 0; i < confirmers.length; ++i) {\n _setupRole(CONFIRM_ROLE, confirmers[i]);\n }\n\n // register executors\n for (uint256 i = 0; i < executors.length; ++i) {\n _setupRole(EXECUTOR_ROLE, executors[i]);\n }\n\n minDelay = _minDelay;\n emit MinDelayChange(0, minDelay);\n }\n\n /**\n * @dev Modifier to make a function callable only by a certain role. In\n * addition to checking the sender's role, `address(0)` 's role is also\n * considered. Granting a role to `address(0)` is equivalent to enabling\n * this role for everyone.\n */\n modifier onlyRoleOrOpenRole(bytes32 role) {\n if (!hasRole(role, address(0))) {\n _checkRole(role, _msgSender());\n }\n _;\n }\n\n /**\n * @dev Contract might receive/hold ETH as part of the maintenance process.\n */\n receive() external payable {}\n\n /**\n * @dev Returns whether an id correspond to a registered operation. This\n * includes both Pending, Ready and Done operations.\n */\n function isOperation(bytes32 id) public view virtual returns (bool pending) {\n return getTimestamp(id) > 0;\n }\n\n /**\n * @dev Returns whether an operation is pending or not.\n */\n function isOperationPending(\n bytes32 id\n ) public view virtual returns (bool pending) {\n return getTimestamp(id) > _DONE_TIMESTAMP;\n }\n\n function isConfirmed(bytes32 id) public view returns (bool ready) {\n uint256 count = 0;\n uint256 executorCount = getRoleMemberCount(EXECUTOR_ROLE);\n for (uint256 i = 0; i < executorCount; i++) {\n if (confirmations[id][getRoleMember(EXECUTOR_ROLE, i)]) count += 1;\n if (count == required) return true;\n }\n }\n\n /**\n * @dev Returns whether an operation is ready or not.\n */\n function isOperationReady(\n bytes32 id\n ) public view virtual returns (bool ready) {\n uint256 timestamp = getTimestamp(id);\n return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n }\n\n /**\n * @dev Returns whether an operation is done or not.\n */\n function isOperationDone(bytes32 id) public view virtual returns (bool done) {\n return getTimestamp(id) == _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Returns the timestamp at with an operation becomes ready (0 for\n * unset operations, 1 for done operations).\n */\n function getTimestamp(\n bytes32 id\n ) public view virtual returns (uint256 timestamp) {\n return _timestamps[id];\n }\n\n /**\n * @dev Returns the identifier of an operation containing a single\n * transaction.\n */\n function hashOperation(\n address target,\n uint256 value,\n bytes calldata data,\n bytes32 predecessor,\n bytes32 salt\n ) public pure virtual returns (bytes32 hash) {\n return keccak256(abi.encode(target, value, data, predecessor, salt));\n }\n\n /**\n * @dev Returns the identifier of an operation containing a batch of\n * transactions.\n */\n function hashOperationBatch(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public pure virtual returns (bytes32 hash) {\n return keccak256(abi.encode(targets, values, datas, predecessor, salt));\n }\n\n /**\n * @dev Schedule an operation containing a single transaction.\n *\n * Emits a {CallScheduled} event.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function schedule(\n address target,\n uint256 value,\n bytes calldata data,\n bytes32 predecessor,\n bytes32 salt,\n uint256 delay\n ) public virtual onlyRole(PROPOSER_ROLE) {\n bytes32 id = hashOperation(target, value, data, predecessor, salt);\n _schedule(id, delay);\n emit CallScheduled(id, 0, target, value, data, predecessor, delay);\n }\n\n /**\n * @dev Schedule an operation containing a batch of transactions.\n *\n * Emits one {CallScheduled} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function scheduleBatch(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt,\n uint256 delay\n ) public virtual onlyRole(PROPOSER_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt);\n _schedule(id, delay);\n for (uint256 i = 0; i < targets.length; ++i) {\n emit CallScheduled(\n id,\n i,\n targets[i],\n values[i],\n datas[i],\n predecessor,\n delay\n );\n }\n }\n\n /**\n * @dev Schedule an operation that is to becomes valid after a given delay.\n */\n function _schedule(bytes32 id, uint256 delay) private {\n require(!isOperation(id), \"BEMultiSigWallet: operation already scheduled\");\n require(delay >= minDelay, \"BEMultiSigWallet: insufficient delay\");\n _timestamps[id] = block.timestamp + delay;\n }\n\n /**\n * @dev Cancel an operation.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function cancel(bytes32 id) public virtual onlyRole(PROPOSER_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation cannot be cancelled\"\n );\n delete _timestamps[id];\n\n emit Cancelled(id);\n }\n\n /**\n * @dev Allows an executor to confirm a transaction.\n * Requirements\n * - the caller must have the 'executor' role.\n */\n function confirmTransaction(\n bytes32 id\n ) public onlyRoleOrOpenRole(CONFIRM_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[id][msg.sender] = true;\n emit Confirmation(msg.sender, id);\n }\n\n /**\n * @dev Allows an executor to confirm multiple transactions.\n */\n function confirmTransactionBatch(\n bytes32[] calldata ids\n ) public onlyRoleOrOpenRole(CONFIRM_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n confirmTransaction(ids[i]);\n }\n }\n\n /**\n * @dev Allows an executor to revoke a confirmation for a transaction.\n * Requirements\n * - the caller must have the 'executor' role.\n */\n function revokeConfirmation(\n bytes32 id\n ) public onlyRoleOrOpenRole(CONFIRM_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[id][msg.sender] = false;\n emit Revocation(msg.sender, id);\n }\n\n /**\n * @dev Allows an executor to revoke multiple confirmations for a transaction.\n */\n function revokeConfirmationBatch(\n bytes32[] calldata ids\n ) public onlyRoleOrOpenRole(CONFIRM_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n revokeConfirmation(ids[i]);\n }\n }\n\n /**\n * @dev Execute an (ready) operation containing a single transaction.\n *\n * Emits a {CallExecuted} event.\n *\n * Requirements:\n *\n * - the caller must have the 'executor' role.\n */\n function execute(\n address target,\n uint256 value,\n bytes calldata data,\n bytes32 predecessor,\n bytes32 salt\n ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n bytes32 id = hashOperation(target, value, data, predecessor, salt);\n _beforeCall(id, predecessor);\n _call(id, 0, target, value, data);\n _afterCall(id);\n }\n\n /**\n * @dev Execute an (ready) operation containing a batch of transactions.\n *\n * Emits one {CallExecuted} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'executor' role.\n */\n function executeBatch(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt);\n _beforeCall(id, predecessor);\n for (uint256 i = 0; i < targets.length; ++i) {\n _call(id, i, targets[i], values[i], datas[i]);\n }\n _afterCall(id);\n }\n\n /**\n * @dev Checks before execution of an operation's calls.\n */\n function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n require(\n isConfirmed(id),\n \"BEMultiSigWallet: operation not reach required confirmations\"\n );\n require(\n predecessor == bytes32(0) || isOperationDone(predecessor),\n \"BEMultiSigWallet: missing dependency\"\n );\n }\n\n /**\n * @dev Checks after execution of an operation's calls.\n */\n function _afterCall(bytes32 id) private {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n _timestamps[id] = _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Execute an operation's call.\n *\n * Emits a {CallExecuted} event.\n */\n function _call(\n bytes32 id,\n uint256 index,\n address target,\n uint256 value,\n bytes calldata data\n ) private {\n (bool success, ) = target.call{value: value}(data);\n require(success, \"BEMultiSigWallet: underlying transaction reverted\");\n\n emit CallExecuted(id, index, target, value, data);\n }\n\n /**\n * @dev Changes the minimum wallet duration for future operations.\n *\n * Emits a {MinDelayChange} event.\n *\n * Requirements:\n *\n * - the caller must be the wallet itself. This can only be achieved by scheduling and later executing\n * an operation where the wallet is the target and the data is the ABI-encoded call to this function.\n */\n function changeDelay(uint256 _minDelay) external virtual onlyWallet {\n emit MinDelayChange(minDelay, _minDelay);\n minDelay = _minDelay;\n }\n\n /**\n * @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n * @param _required Number of required confirmations.\n */\n function changeRequirement(uint256 _required) external virtual onlyWallet {\n emit RequirementChange(required, _required);\n required = _required;\n }\n}\n", "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/core/BEMultiSigWallet.sol", "ast": { "absolutePath": "project:/contracts/core/BEMultiSigWallet.sol", @@ -24555,7 +24727,7 @@ 433 ], "BEMultiSigWallet": [ - 2391 + 2424 ], "Context": [ 553 @@ -24579,7 +24751,7 @@ 756 ] }, - "id": 2392, + "id": 2425, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -24599,7 +24771,7 @@ "id": 1394, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2392, + "scope": 2425, "sourceUnit": 434, "src": "56:68:9", "symbolAliases": [], @@ -24631,9 +24803,9 @@ "text": " MultiSigWallet with timelocker" }, "fullyImplemented": true, - "id": 2391, + "id": 2424, "linearizedBaseContracts": [ - 2391, + 2424, 433, 308, 780, @@ -24654,7 +24826,7 @@ "name": "TIMELOCK_ADMIN_ROLE", "nameLocation": "249:19:9", "nodeType": "VariableDeclaration", - "scope": 2391, + "scope": 2424, "src": "225:82:9", "stateVariable": true, "storageLocation": "default", @@ -24734,7 +24906,7 @@ "name": "PROPOSER_ROLE", "nameLocation": "335:13:9", "nodeType": "VariableDeclaration", - "scope": 2391, + "scope": 2424, "src": "311:66:9", "stateVariable": true, "storageLocation": "default", @@ -24814,7 +24986,7 @@ "name": "EXECUTOR_ROLE", "nameLocation": "405:13:9", "nodeType": "VariableDeclaration", - "scope": 2391, + "scope": 2424, "src": "381:66:9", "stateVariable": true, "storageLocation": "default", @@ -24888,13 +25060,93 @@ }, { "constant": true, - "id": 1418, + "functionSelector": "c3a6b147", + "id": 1417, + "mutability": "constant", + "name": "CONFIRM_ROLE", + "nameLocation": "475:12:9", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "451:64:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1413, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "451:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "434f4e4649524d5f524f4c45", + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "500:14:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f", + "typeString": "literal_string \"CONFIRM_ROLE\"" + }, + "value": "CONFIRM_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f", + "typeString": "literal_string \"CONFIRM_ROLE\"" + } + ], + "id": 1414, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "490:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "490:25:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 1423, "mutability": "constant", "name": "_DONE_TIMESTAMP", - "nameLocation": "477:15:9", + "nameLocation": "545:15:9", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "451:54:9", + "scope": 2424, + "src": "519:54:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -24902,10 +25154,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1413, + "id": 1418, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "451:7:9", + "src": "519:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24915,14 +25167,14 @@ "arguments": [ { "hexValue": "31", - "id": 1416, + "id": 1421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "503:1:9", + "src": "571:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -24937,26 +25189,26 @@ "typeString": "int_const 1" } ], - "id": 1415, + "id": 1420, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "495:7:9", + "src": "563:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1414, + "id": 1419, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "495:7:9", + "src": "563:7:9", "typeDescriptions": {} } }, - "id": 1417, + "id": 1422, "isConstant": false, "isLValue": false, "isPure": true, @@ -24964,7 +25216,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "495:10:9", + "src": "563:10:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24975,13 +25227,13 @@ }, { "constant": false, - "id": 1422, + "id": 1427, "mutability": "mutable", "name": "_timestamps", - "nameLocation": "546:11:9", + "nameLocation": "614:11:9", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "510:47:9", + "scope": 2424, + "src": "578:47:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -24989,28 +25241,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 1421, + "id": 1426, "keyType": { - "id": 1419, + "id": 1424, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "518:7:9", + "src": "586:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "510:27:9", + "src": "578:27:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 1420, + "id": 1425, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "529:7:9", + "src": "597:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25022,13 +25274,13 @@ { "constant": false, "functionSelector": "0c4ecab4", - "id": 1428, + "id": 1433, "mutability": "mutable", "name": "confirmations", - "nameLocation": "613:13:9", + "nameLocation": "681:13:9", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "561:65:9", + "scope": 2424, + "src": "629:65:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25036,46 +25288,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 1427, + "id": 1432, "keyType": { - "id": 1423, + "id": 1428, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "569:7:9", + "src": "637:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "561:44:9", + "src": "629:44:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 1426, + "id": 1431, "keyType": { - "id": 1424, + "id": 1429, "name": "address", "nodeType": "ElementaryTypeName", - "src": "588:7:9", + "src": "656:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "580:24:9", + "src": "648:24:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1425, + "id": 1430, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "599:4:9", + "src": "667:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25088,13 +25340,13 @@ { "constant": false, "functionSelector": "c63c4e9b", - "id": 1430, + "id": 1435, "mutability": "mutable", "name": "minDelay", - "nameLocation": "645:8:9", + "nameLocation": "713:8:9", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "630:23:9", + "scope": 2424, + "src": "698:23:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25102,10 +25354,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1429, + "id": 1434, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "630:7:9", + "src": "698:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25116,13 +25368,13 @@ { "constant": false, "functionSelector": "dc8452cd", - "id": 1432, + "id": 1437, "mutability": "mutable", "name": "required", - "nameLocation": "672:8:9", + "nameLocation": "740:8:9", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "657:23:9", + "scope": 2424, + "src": "725:23:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25130,10 +25382,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1431, + "id": 1436, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "657:7:9", + "src": "725:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25144,29 +25396,29 @@ { "anonymous": false, "documentation": { - "id": 1433, + "id": 1438, "nodeType": "StructuredDocumentation", - "src": "685:79:9", + "src": "753:79:9", "text": " @dev Emitted when a call is scheduled as part of operation `id`." }, - "id": 1449, + "id": 1454, "name": "CallScheduled", - "nameLocation": "773:13:9", + "nameLocation": "841:13:9", "nodeType": "EventDefinition", "parameters": { - "id": 1448, + "id": 1453, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1435, + "id": 1440, "indexed": true, "mutability": "mutable", "name": "id", - "nameLocation": "808:2:9", + "nameLocation": "876:2:9", "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "792:18:9", + "scope": 1454, + "src": "860:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25174,10 +25426,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1434, + "id": 1439, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "792:7:9", + "src": "860:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -25187,14 +25439,14 @@ }, { "constant": false, - "id": 1437, + "id": 1442, "indexed": true, "mutability": "mutable", "name": "index", - "nameLocation": "832:5:9", + "nameLocation": "900:5:9", "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "816:21:9", + "scope": 1454, + "src": "884:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25202,10 +25454,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1436, + "id": 1441, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "816:7:9", + "src": "884:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25215,14 +25467,14 @@ }, { "constant": false, - "id": 1439, + "id": 1444, "indexed": false, "mutability": "mutable", "name": "target", - "nameLocation": "851:6:9", + "nameLocation": "919:6:9", "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "843:14:9", + "scope": 1454, + "src": "911:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25230,10 +25482,10 @@ "typeString": "address" }, "typeName": { - "id": 1438, + "id": 1443, "name": "address", "nodeType": "ElementaryTypeName", - "src": "843:7:9", + "src": "911:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25244,14 +25496,14 @@ }, { "constant": false, - "id": 1441, + "id": 1446, "indexed": false, "mutability": "mutable", "name": "value", - "nameLocation": "871:5:9", + "nameLocation": "939:5:9", "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "863:13:9", + "scope": 1454, + "src": "931:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25259,10 +25511,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1440, + "id": 1445, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "863:7:9", + "src": "931:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25272,14 +25524,14 @@ }, { "constant": false, - "id": 1443, + "id": 1448, "indexed": false, "mutability": "mutable", "name": "data", - "nameLocation": "888:4:9", + "nameLocation": "956:4:9", "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "882:10:9", + "scope": 1454, + "src": "950:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25287,10 +25539,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1442, + "id": 1447, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "882:5:9", + "src": "950:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -25300,14 +25552,14 @@ }, { "constant": false, - "id": 1445, + "id": 1450, "indexed": false, "mutability": "mutable", "name": "predecessor", - "nameLocation": "906:11:9", + "nameLocation": "974:11:9", "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "898:19:9", + "scope": 1454, + "src": "966:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25315,10 +25567,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1444, + "id": 1449, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "898:7:9", + "src": "966:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -25326,212 +25578,50 @@ }, "visibility": "internal" }, - { - "constant": false, - "id": 1447, - "indexed": false, - "mutability": "mutable", - "name": "delay", - "nameLocation": "931:5:9", - "nodeType": "VariableDeclaration", - "scope": 1449, - "src": "923:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "923:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "786:154:9" - }, - "src": "767:174:9" - }, - { - "anonymous": false, - "documentation": { - "id": 1450, - "nodeType": "StructuredDocumentation", - "src": "945:79:9", - "text": " @dev Emitted when a call is performed as part of operation `id`." - }, - "id": 1462, - "name": "CallExecuted", - "nameLocation": "1033:12:9", - "nodeType": "EventDefinition", - "parameters": { - "id": 1461, - "nodeType": "ParameterList", - "parameters": [ { "constant": false, "id": 1452, - "indexed": true, + "indexed": false, "mutability": "mutable", - "name": "id", - "nameLocation": "1067:2:9", + "name": "delay", + "nameLocation": "999:5:9", "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1051:18:9", + "scope": 1454, + "src": "991:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { "id": 1451, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1051:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "indexed": true, - "mutability": "mutable", - "name": "index", - "nameLocation": "1091:5:9", - "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1075:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1453, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1075:7:9", + "src": "991:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "indexed": false, - "mutability": "mutable", - "name": "target", - "nameLocation": "1110:6:9", - "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1102:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1455, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nameLocation": "1130:5:9", - "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1122:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1122:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "indexed": false, - "mutability": "mutable", - "name": "data", - "nameLocation": "1147:4:9", - "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1141:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1141:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" } ], - "src": "1045:110:9" + "src": "854:154:9" }, - "src": "1027:129:9" + "src": "835:174:9" }, { "anonymous": false, "documentation": { - "id": 1463, + "id": 1455, "nodeType": "StructuredDocumentation", - "src": "1160:61:9", - "text": " @dev Emitted when operation `id` is cancelled." + "src": "1013:79:9", + "text": " @dev Emitted when a call is performed as part of operation `id`." }, "id": 1467, - "name": "Cancelled", - "nameLocation": "1230:9:9", + "name": "CallExecuted", + "nameLocation": "1101:12:9", "nodeType": "EventDefinition", "parameters": { "id": 1466, @@ -25539,207 +25629,369 @@ "parameters": [ { "constant": false, - "id": 1465, + "id": 1457, "indexed": true, "mutability": "mutable", "name": "id", - "nameLocation": "1256:2:9", + "nameLocation": "1135:2:9", "nodeType": "VariableDeclaration", "scope": 1467, - "src": "1240:18:9", + "src": "1119:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, + "typeName": { + "id": 1456, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1119:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "indexed": true, + "mutability": "mutable", + "name": "index", + "nameLocation": "1159:5:9", + "nodeType": "VariableDeclaration", + "scope": 1467, + "src": "1143:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1143:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1461, + "indexed": false, + "mutability": "mutable", + "name": "target", + "nameLocation": "1178:6:9", + "nodeType": "VariableDeclaration", + "scope": 1467, + "src": "1170:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1170:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1463, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "1198:5:9", + "nodeType": "VariableDeclaration", + "scope": 1467, + "src": "1190:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1190:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1465, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "1215:4:9", + "nodeType": "VariableDeclaration", + "scope": 1467, + "src": "1209:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, "typeName": { "id": 1464, - "name": "bytes32", + "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1240:7:9", + "src": "1209:5:9", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, "visibility": "internal" } ], - "src": "1239:20:9" + "src": "1113:110:9" }, - "src": "1224:36:9" - }, - { - "anonymous": false, - "id": 1473, - "name": "Confirmation", - "nameLocation": "1270:12:9", - "nodeType": "EventDefinition", - "parameters": { - "id": 1472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1469, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1299:6:9", - "nodeType": "VariableDeclaration", - "scope": 1473, - "src": "1283:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1283:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1471, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nameLocation": "1315:2:9", - "nodeType": "VariableDeclaration", - "scope": 1473, - "src": "1307:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1470, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1307:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1282:36:9" - }, - "src": "1264:55:9" - }, - { - "anonymous": false, - "id": 1479, - "name": "Revocation", - "nameLocation": "1329:10:9", - "nodeType": "EventDefinition", - "parameters": { - "id": 1478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1475, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1356:6:9", - "nodeType": "VariableDeclaration", - "scope": 1479, - "src": "1340:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1474, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1340:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1477, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nameLocation": "1372:2:9", - "nodeType": "VariableDeclaration", - "scope": 1479, - "src": "1364:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1476, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1364:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1339:36:9" - }, - "src": "1323:53:9" + "src": "1095:129:9" }, { "anonymous": false, "documentation": { - "id": 1480, + "id": 1468, "nodeType": "StructuredDocumentation", - "src": "1380:85:9", - "text": " @dev Emitted when the minimum delay for future operations is modified." + "src": "1228:61:9", + "text": " @dev Emitted when operation `id` is cancelled." }, - "id": 1486, - "name": "MinDelayChange", - "nameLocation": "1474:14:9", + "id": 1472, + "name": "Cancelled", + "nameLocation": "1298:9:9", "nodeType": "EventDefinition", "parameters": { - "id": 1485, + "id": 1471, "nodeType": "ParameterList", "parameters": [ + { + "constant": false, + "id": 1470, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1324:2:9", + "nodeType": "VariableDeclaration", + "scope": 1472, + "src": "1308:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1469, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1308:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1307:20:9" + }, + "src": "1292:36:9" + }, + { + "anonymous": false, + "id": 1478, + "name": "Confirmation", + "nameLocation": "1338:12:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 1477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1474, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1367:6:9", + "nodeType": "VariableDeclaration", + "scope": 1478, + "src": "1351:22:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1351:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1476, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "1383:2:9", + "nodeType": "VariableDeclaration", + "scope": 1478, + "src": "1375:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1475, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1375:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1350:36:9" + }, + "src": "1332:55:9" + }, + { + "anonymous": false, + "id": 1484, + "name": "Revocation", + "nameLocation": "1397:10:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 1483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1480, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1424:6:9", + "nodeType": "VariableDeclaration", + "scope": 1484, + "src": "1408:22:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1408:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, { "constant": false, "id": 1482, "indexed": false, "mutability": "mutable", - "name": "oldDuration", - "nameLocation": "1497:11:9", + "name": "id", + "nameLocation": "1440:2:9", "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "1489:19:9", + "scope": 1484, + "src": "1432:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1481, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1432:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1407:36:9" + }, + "src": "1391:53:9" + }, + { + "anonymous": false, + "documentation": { + "id": 1485, + "nodeType": "StructuredDocumentation", + "src": "1448:85:9", + "text": " @dev Emitted when the minimum delay for future operations is modified." + }, + "id": 1491, + "name": "MinDelayChange", + "nameLocation": "1542:14:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1487, + "indexed": false, + "mutability": "mutable", + "name": "oldDuration", + "nameLocation": "1565:11:9", + "nodeType": "VariableDeclaration", + "scope": 1491, + "src": "1557:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25747,10 +25999,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1481, + "id": 1486, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1489:7:9", + "src": "1557:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25758,65 +26010,16 @@ }, "visibility": "internal" }, - { - "constant": false, - "id": 1484, - "indexed": false, - "mutability": "mutable", - "name": "newDuration", - "nameLocation": "1518:11:9", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "1510:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1510:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1488:42:9" - }, - "src": "1468:63:9" - }, - { - "anonymous": false, - "documentation": { - "id": 1487, - "nodeType": "StructuredDocumentation", - "src": "1534:81:9", - "text": " @dev Emitted when the number of required confimations is modified." - }, - "id": 1493, - "name": "RequirementChange", - "nameLocation": "1624:17:9", - "nodeType": "EventDefinition", - "parameters": { - "id": 1492, - "nodeType": "ParameterList", - "parameters": [ { "constant": false, "id": 1489, "indexed": false, "mutability": "mutable", - "name": "oldDuration", - "nameLocation": "1650:11:9", + "name": "newDuration", + "nameLocation": "1586:11:9", "nodeType": "VariableDeclaration", - "scope": 1493, - "src": "1642:19:9", + "scope": 1491, + "src": "1578:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25827,7 +26030,56 @@ "id": 1488, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1642:7:9", + "src": "1578:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1556:42:9" + }, + "src": "1536:63:9" + }, + { + "anonymous": false, + "documentation": { + "id": 1492, + "nodeType": "StructuredDocumentation", + "src": "1602:81:9", + "text": " @dev Emitted when the number of required confimations is modified." + }, + "id": 1498, + "name": "RequirementChange", + "nameLocation": "1692:17:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 1497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1494, + "indexed": false, + "mutability": "mutable", + "name": "oldDuration", + "nameLocation": "1718:11:9", + "nodeType": "VariableDeclaration", + "scope": 1498, + "src": "1710:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1710:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25837,14 +26089,14 @@ }, { "constant": false, - "id": 1491, + "id": 1496, "indexed": false, "mutability": "mutable", "name": "newDuration", - "nameLocation": "1671:11:9", + "nameLocation": "1739:11:9", "nodeType": "VariableDeclaration", - "scope": 1493, - "src": "1663:19:9", + "scope": 1498, + "src": "1731:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25852,10 +26104,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1490, + "id": 1495, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1663:7:9", + "src": "1731:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25864,15 +26116,15 @@ "visibility": "internal" } ], - "src": "1641:42:9" + "src": "1709:42:9" }, - "src": "1618:66:9" + "src": "1686:66:9" }, { "body": { - "id": 1507, + "id": 1512, "nodeType": "Block", - "src": "1710:115:9", + "src": "1778:115:9", "statements": [ { "expression": { @@ -25882,32 +26134,32 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1502, + "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1496, + "id": 1501, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "1731:3:9", + "src": "1799:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1497, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "1731:10:9", + "src": "1799:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25918,14 +26170,14 @@ "rightExpression": { "arguments": [ { - "id": 1500, + "id": 1505, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "1753:4:9", + "src": "1821:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2391", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2424", "typeString": "contract BEMultiSigWallet" } } @@ -25933,30 +26185,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2391", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2424", "typeString": "contract BEMultiSigWallet" } ], - "id": 1499, + "id": 1504, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1745:7:9", + "src": "1813:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1498, + "id": 1503, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1745:7:9", + "src": "1813:7:9", "typeDescriptions": {} } }, - "id": 1501, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": false, @@ -25964,14 +26216,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1745:13:9", + "src": "1813:13:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1731:27:9", + "src": "1799:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25979,14 +26231,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a2063616c6c6572206d7573742062652077616c6c6574", - "id": 1503, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1766:41:9", + "src": "1834:41:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b5a3ea75736bca2597d1c0b036db058aff7a9f1b1e864ba70a39cc3c6c3b2c38", "typeString": "literal_string \"BEMultiSigWallet: caller must be wallet\"" @@ -26005,7 +26257,7 @@ "typeString": "literal_string \"BEMultiSigWallet: caller must be wallet\"" } ], - "id": 1495, + "id": 1500, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -26013,13 +26265,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "1716:7:9", + "src": "1784:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1504, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": false, @@ -26027,66 +26279,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1716:97:9", + "src": "1784:97:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1505, + "id": 1510, "nodeType": "ExpressionStatement", - "src": "1716:97:9" + "src": "1784:97:9" }, { - "id": 1506, + "id": 1511, "nodeType": "PlaceholderStatement", - "src": "1819:1:9" + "src": "1887:1:9" } ] }, - "id": 1508, + "id": 1513, "name": "onlyWallet", - "nameLocation": "1697:10:9", + "nameLocation": "1765:10:9", "nodeType": "ModifierDefinition", "parameters": { - "id": 1494, + "id": 1499, "nodeType": "ParameterList", "parameters": [], - "src": "1707:2:9" + "src": "1775:2:9" }, - "src": "1688:137:9", + "src": "1756:137:9", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1598, + "id": 1631, "nodeType": "Block", - "src": "2004:649:9", + "src": "2105:838:9", "statements": [ { "expression": { "arguments": [ { - "id": 1521, + "id": 1529, "name": "TIMELOCK_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1402, - "src": "2024:19:9", + "src": "2125:19:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1522, + "id": 1530, "name": "TIMELOCK_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1402, - "src": "2045:19:9", + "src": "2146:19:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26104,18 +26356,18 @@ "typeString": "bytes32" } ], - "id": 1520, + "id": 1528, "name": "_setRoleAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 244, - "src": "2010:13:9", + "src": "2111:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32)" } }, - "id": 1523, + "id": 1531, "isConstant": false, "isLValue": false, "isPure": false, @@ -26123,39 +26375,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2010:55:9", + "src": "2111:55:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1524, + "id": 1532, "nodeType": "ExpressionStatement", - "src": "2010:55:9" + "src": "2111:55:9" }, { "expression": { "arguments": [ { - "id": 1526, + "id": 1534, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "2085:13:9", + "src": "2186:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1527, + "id": 1535, "name": "TIMELOCK_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1402, - "src": "2100:19:9", + "src": "2201:19:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26173,18 +26425,18 @@ "typeString": "bytes32" } ], - "id": 1525, + "id": 1533, "name": "_setRoleAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 244, - "src": "2071:13:9", + "src": "2172:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32)" } }, - "id": 1528, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": false, @@ -26192,39 +26444,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2071:49:9", + "src": "2172:49:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1529, + "id": 1537, "nodeType": "ExpressionStatement", - "src": "2071:49:9" + "src": "2172:49:9" }, { "expression": { "arguments": [ { - "id": 1531, + "id": 1539, "name": "EXECUTOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, - "src": "2140:13:9", + "src": "2241:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1532, + "id": 1540, "name": "TIMELOCK_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1402, - "src": "2155:19:9", + "src": "2256:19:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26242,18 +26494,18 @@ "typeString": "bytes32" } ], - "id": 1530, + "id": 1538, "name": "_setRoleAdmin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 244, - "src": "2126:13:9", + "src": "2227:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32)" } }, - "id": 1533, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, @@ -26261,27 +26513,96 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2126:49:9", + "src": "2227:49:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1534, + "id": 1542, "nodeType": "ExpressionStatement", - "src": "2126:49:9" + "src": "2227:49:9" }, { "expression": { "arguments": [ { - "id": 1536, + "id": 1544, + "name": "CONFIRM_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2296:12:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1545, "name": "TIMELOCK_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1402, - "src": "2231:19:9", + "src": "2310:19:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1543, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "2282:13:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2282:48:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1547, + "nodeType": "ExpressionStatement", + "src": "2282:48:9" + }, + { + "expression": { + "arguments": [ + { + "id": 1549, + "name": "TIMELOCK_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1402, + "src": "2386:19:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26291,18 +26612,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1537, + "id": 1550, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 543, - "src": "2252:10:9", + "src": "2407:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1538, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": false, @@ -26310,7 +26631,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2252:12:9", + "src": "2407:12:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26329,18 +26650,18 @@ "typeString": "address" } ], - "id": 1535, + "id": 1548, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "2220:10:9", + "src": "2375:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1539, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": false, @@ -26348,27 +26669,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2220:45:9", + "src": "2375:45:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1540, + "id": 1553, "nodeType": "ExpressionStatement", - "src": "2220:45:9" + "src": "2375:45:9" }, { "expression": { "arguments": [ { - "id": 1542, + "id": 1555, "name": "TIMELOCK_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1402, - "src": "2282:19:9", + "src": "2437:19:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26377,14 +26698,14 @@ { "arguments": [ { - "id": 1545, + "id": 1558, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2311:4:9", + "src": "2466:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2391", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2424", "typeString": "contract BEMultiSigWallet" } } @@ -26392,30 +26713,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2391", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2424", "typeString": "contract BEMultiSigWallet" } ], - "id": 1544, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2303:7:9", + "src": "2458:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1543, + "id": 1556, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2303:7:9", + "src": "2458:7:9", "typeDescriptions": {} } }, - "id": 1546, + "id": 1559, "isConstant": false, "isLValue": false, "isPure": false, @@ -26423,7 +26744,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2303:13:9", + "src": "2458:13:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26442,18 +26763,18 @@ "typeString": "address" } ], - "id": 1541, + "id": 1554, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "2271:10:9", + "src": "2426:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1547, + "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, @@ -26461,33 +26782,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2271:46:9", + "src": "2426:46:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1548, + "id": 1561, "nodeType": "ExpressionStatement", - "src": "2271:46:9" + "src": "2426:46:9" }, { "body": { - "id": 1567, + "id": 1580, "nodeType": "Block", - "src": "2397:54:9", + "src": "2552:54:9", "statements": [ { "expression": { "arguments": [ { - "id": 1561, + "id": 1574, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "2416:13:9", + "src": "2571:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26495,25 +26816,25 @@ }, { "baseExpression": { - "id": 1562, + "id": 1575, "name": "proposers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1514, - "src": "2431:9:9", + "referencedDeclaration": 1519, + "src": "2586:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1564, + "id": 1577, "indexExpression": { - "id": 1563, + "id": 1576, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1550, - "src": "2441:1:9", + "referencedDeclaration": 1563, + "src": "2596:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26524,7 +26845,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2431:12:9", + "src": "2586:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26542,18 +26863,18 @@ "typeString": "address" } ], - "id": 1560, + "id": 1573, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "2405:10:9", + "src": "2560:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1565, + "id": 1578, "isConstant": false, "isLValue": false, "isPure": false, @@ -26561,16 +26882,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2405:39:9", + "src": "2560:39:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1566, + "id": 1579, "nodeType": "ExpressionStatement", - "src": "2405:39:9" + "src": "2560:39:9" } ] }, @@ -26579,18 +26900,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1556, + "id": 1569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1553, + "id": 1566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1550, - "src": "2370:1:9", + "referencedDeclaration": 1563, + "src": "2525:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26600,51 +26921,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1554, + "id": 1567, "name": "proposers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1514, - "src": "2374:9:9", + "referencedDeclaration": 1519, + "src": "2529:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1555, + "id": 1568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2374:16:9", + "src": "2529:16:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2370:20:9", + "src": "2525:20:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1568, + "id": 1581, "initializationExpression": { "assignments": [ - 1550 + 1563 ], "declarations": [ { "constant": false, - "id": 1550, + "id": 1563, "mutability": "mutable", "name": "i", - "nameLocation": "2363:1:9", + "nameLocation": "2518:1:9", "nodeType": "VariableDeclaration", - "scope": 1568, - "src": "2355:9:9", + "scope": 1581, + "src": "2510:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26652,10 +26973,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1549, + "id": 1562, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2355:7:9", + "src": "2510:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26664,17 +26985,17 @@ "visibility": "internal" } ], - "id": 1552, + "id": 1565, "initialValue": { "hexValue": "30", - "id": 1551, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2367:1:9", + "src": "2522:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -26682,11 +27003,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2355:13:9" + "src": "2510:13:9" }, "loopExpression": { "expression": { - "id": 1558, + "id": 1571, "isConstant": false, "isLValue": false, "isPure": false, @@ -26694,14 +27015,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "2392:3:9", + "src": "2547:3:9", "subExpression": { - "id": 1557, + "id": 1570, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1550, - "src": "2394:1:9", + "referencedDeclaration": 1563, + "src": "2549:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26712,29 +27033,29 @@ "typeString": "uint256" } }, - "id": 1559, + "id": 1572, "nodeType": "ExpressionStatement", - "src": "2392:3:9" + "src": "2547:3:9" }, "nodeType": "ForStatement", - "src": "2350:101:9" + "src": "2505:101:9" }, { "body": { - "id": 1587, + "id": 1600, "nodeType": "Block", - "src": "2530:54:9", + "src": "2687:54:9", "statements": [ { "expression": { "arguments": [ { - "id": 1581, - "name": "EXECUTOR_ROLE", + "id": 1594, + "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "2549:13:9", + "referencedDeclaration": 1417, + "src": "2706:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26742,25 +27063,25 @@ }, { "baseExpression": { - "id": 1582, - "name": "executors", + "id": 1595, + "name": "confirmers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, - "src": "2564:9:9", + "referencedDeclaration": 1522, + "src": "2720:10:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1584, + "id": 1597, "indexExpression": { - "id": 1583, + "id": 1596, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1570, - "src": "2574:1:9", + "referencedDeclaration": 1583, + "src": "2731:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26771,7 +27092,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2564:12:9", + "src": "2720:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26789,18 +27110,18 @@ "typeString": "address" } ], - "id": 1580, + "id": 1593, "name": "_setupRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, - "src": "2538:10:9", + "src": "2695:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, - "id": 1585, + "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, @@ -26808,16 +27129,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2538:39:9", + "src": "2695:39:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1586, + "id": 1599, "nodeType": "ExpressionStatement", - "src": "2538:39:9" + "src": "2695:39:9" } ] }, @@ -26826,18 +27147,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1576, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1573, + "id": 1586, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1570, - "src": "2503:1:9", + "referencedDeclaration": 1583, + "src": "2659:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26847,51 +27168,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1574, - "name": "executors", + "id": 1587, + "name": "confirmers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, - "src": "2507:9:9", + "referencedDeclaration": 1522, + "src": "2663:10:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1575, + "id": 1588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2507:16:9", + "src": "2663:17:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2503:20:9", + "src": "2659:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1588, + "id": 1601, "initializationExpression": { "assignments": [ - 1570 + 1583 ], "declarations": [ { "constant": false, - "id": 1570, + "id": 1583, "mutability": "mutable", "name": "i", - "nameLocation": "2496:1:9", + "nameLocation": "2652:1:9", "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "2488:9:9", + "scope": 1601, + "src": "2644:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26899,10 +27220,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1569, + "id": 1582, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2488:7:9", + "src": "2644:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26911,17 +27232,17 @@ "visibility": "internal" } ], - "id": 1572, + "id": 1585, "initialValue": { "hexValue": "30", - "id": 1571, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2500:1:9", + "src": "2656:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -26929,11 +27250,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2488:13:9" + "src": "2644:13:9" }, "loopExpression": { "expression": { - "id": 1578, + "id": 1591, "isConstant": false, "isLValue": false, "isPure": false, @@ -26941,14 +27262,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "2525:3:9", + "src": "2682:3:9", "subExpression": { - "id": 1577, + "id": 1590, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1570, - "src": "2527:1:9", + "referencedDeclaration": 1583, + "src": "2684:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26959,27 +27280,274 @@ "typeString": "uint256" } }, - "id": 1579, + "id": 1592, "nodeType": "ExpressionStatement", - "src": "2525:3:9" + "src": "2682:3:9" }, "nodeType": "ForStatement", - "src": "2483:101:9" + "src": "2639:102:9" + }, + { + "body": { + "id": 1620, + "nodeType": "Block", + "src": "2820:54:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1614, + "name": "EXECUTOR_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "2839:13:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 1615, + "name": "executors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "2854:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1617, + "indexExpression": { + "id": 1616, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "2864:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2854:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1613, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "2828:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2828:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1619, + "nodeType": "ExpressionStatement", + "src": "2828:39:9" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1606, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "2793:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1607, + "name": "executors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "2797:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2797:16:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2793:20:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1621, + "initializationExpression": { + "assignments": [ + 1603 + ], + "declarations": [ + { + "constant": false, + "id": 1603, + "mutability": "mutable", + "name": "i", + "nameLocation": "2786:1:9", + "nodeType": "VariableDeclaration", + "scope": 1621, + "src": "2778:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2778:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1605, + "initialValue": { + "hexValue": "30", + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2790:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2778:13:9" + }, + "loopExpression": { + "expression": { + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2815:3:9", + "subExpression": { + "id": 1610, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1603, + "src": "2817:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1612, + "nodeType": "ExpressionStatement", + "src": "2815:3:9" + }, + "nodeType": "ForStatement", + "src": "2773:101:9" }, { "expression": { - "id": 1591, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1589, + "id": 1622, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1430, - "src": "2590:8:9", + "referencedDeclaration": 1435, + "src": "2880:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26988,40 +27556,40 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1590, + "id": 1623, "name": "_minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2601:9:9", + "referencedDeclaration": 1516, + "src": "2891:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2590:20:9", + "src": "2880:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1592, + "id": 1625, "nodeType": "ExpressionStatement", - "src": "2590:20:9" + "src": "2880:20:9" }, { "eventCall": { "arguments": [ { "hexValue": "30", - "id": 1594, + "id": 1627, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2636:1:9", + "src": "2926:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -27029,12 +27597,12 @@ "value": "0" }, { - "id": 1595, + "id": 1628, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1430, - "src": "2639:8:9", + "referencedDeclaration": 1435, + "src": "2929:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27052,18 +27620,18 @@ "typeString": "uint256" } ], - "id": 1593, + "id": 1626, "name": "MinDelayChange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1486, - "src": "2621:14:9", + "referencedDeclaration": 1491, + "src": "2911:14:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 1596, + "id": 1629, "isConstant": false, "isLValue": false, "isPure": false, @@ -27071,26 +27639,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2621:27:9", + "src": "2911:27:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1597, + "id": 1630, "nodeType": "EmitStatement", - "src": "2616:32:9" + "src": "2906:32:9" } ] }, "documentation": { - "id": 1509, + "id": 1514, "nodeType": "StructuredDocumentation", - "src": "1829:69:9", + "src": "1897:69:9", "text": " @dev Initializes the contract with a given `minDelay`." }, - "id": 1599, + "id": 1632, "implemented": true, "kind": "constructor", "modifiers": [], @@ -27098,18 +27666,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1518, + "id": 1526, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1511, + "id": 1516, "mutability": "mutable", "name": "_minDelay", - "nameLocation": "1926:9:9", + "nameLocation": "1994:9:9", "nodeType": "VariableDeclaration", - "scope": 1599, - "src": "1918:17:9", + "scope": 1632, + "src": "1986:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27117,10 +27685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1510, + "id": 1515, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1918:7:9", + "src": "1986:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27130,13 +27698,13 @@ }, { "constant": false, - "id": 1514, + "id": 1519, "mutability": "mutable", "name": "proposers", - "nameLocation": "1958:9:9", + "nameLocation": "2026:9:9", "nodeType": "VariableDeclaration", - "scope": 1599, - "src": "1941:26:9", + "scope": 1632, + "src": "2009:26:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -27145,19 +27713,19 @@ }, "typeName": { "baseType": { - "id": 1512, + "id": 1517, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1941:7:9", + "src": "2009:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1513, + "id": 1518, "nodeType": "ArrayTypeName", - "src": "1941:9:9", + "src": "2009:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -27167,13 +27735,13 @@ }, { "constant": false, - "id": 1517, + "id": 1522, "mutability": "mutable", - "name": "executors", - "nameLocation": "1990:9:9", + "name": "confirmers", + "nameLocation": "2058:10:9", "nodeType": "VariableDeclaration", - "scope": 1599, - "src": "1973:26:9", + "scope": 1632, + "src": "2041:27:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -27182,19 +27750,56 @@ }, "typeName": { "baseType": { - "id": 1515, + "id": 1520, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1973:7:9", + "src": "2041:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1516, + "id": 1521, "nodeType": "ArrayTypeName", - "src": "1973:9:9", + "src": "2041:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1525, + "mutability": "mutable", + "name": "executors", + "nameLocation": "2091:9:9", + "nodeType": "VariableDeclaration", + "scope": 1632, + "src": "2074:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2074:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1524, + "nodeType": "ArrayTypeName", + "src": "2074:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -27203,29 +27808,29 @@ "visibility": "internal" } ], - "src": "1912:91:9" + "src": "1980:124:9" }, "returnParameters": { - "id": 1519, + "id": 1527, "nodeType": "ParameterList", "parameters": [], - "src": "2004:0:9" + "src": "2105:0:9" }, - "scope": 2391, - "src": "1901:752:9", + "scope": 2424, + "src": "1969:974:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1621, + "id": 1654, "nodeType": "Block", - "src": "2963:94:9", + "src": "3253:94:9", "statements": [ { "condition": { - "id": 1611, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, @@ -27233,16 +27838,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2973:26:9", + "src": "3263:26:9", "subExpression": { "arguments": [ { - "id": 1605, + "id": 1638, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "2982:4:9", + "referencedDeclaration": 1635, + "src": "3272:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27252,14 +27857,14 @@ "arguments": [ { "hexValue": "30", - "id": 1608, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2996:1:9", + "src": "3286:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -27274,26 +27879,26 @@ "typeString": "int_const 0" } ], - "id": 1607, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2988:7:9", + "src": "3278:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1606, + "id": 1639, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2988:7:9", + "src": "3278:7:9", "typeDescriptions": {} } }, - "id": 1609, + "id": 1642, "isConstant": false, "isLValue": false, "isPure": true, @@ -27301,7 +27906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2988:10:9", + "src": "3278:10:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27320,18 +27925,18 @@ "typeString": "address" } ], - "id": 1604, + "id": 1637, "name": "hasRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 81, - "src": "2974:7:9", + "src": "3264:7:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) view returns (bool)" } }, - "id": 1610, + "id": 1643, "isConstant": false, "isLValue": false, "isPure": false, @@ -27339,7 +27944,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2974:25:9", + "src": "3264:25:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27351,24 +27956,24 @@ "typeString": "bool" } }, - "id": 1619, + "id": 1652, "nodeType": "IfStatement", - "src": "2969:77:9", + "src": "3259:77:9", "trueBody": { - "id": 1618, + "id": 1651, "nodeType": "Block", - "src": "3001:45:9", + "src": "3291:45:9", "statements": [ { "expression": { "arguments": [ { - "id": 1613, + "id": 1646, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "3020:4:9", + "referencedDeclaration": 1635, + "src": "3310:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27378,18 +27983,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1614, + "id": 1647, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 543, - "src": "3026:10:9", + "src": "3316:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, - "id": 1615, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": false, @@ -27397,7 +28002,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3026:12:9", + "src": "3316:12:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -27416,18 +28021,18 @@ "typeString": "address" } ], - "id": 1612, + "id": 1645, "name": "_checkRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 124, - "src": "3009:10:9", + "src": "3299:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address) view" } }, - "id": 1616, + "id": 1649, "isConstant": false, "isLValue": false, "isPure": false, @@ -27435,50 +28040,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3009:30:9", + "src": "3299:30:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1617, + "id": 1650, "nodeType": "ExpressionStatement", - "src": "3009:30:9" + "src": "3299:30:9" } ] } }, { - "id": 1620, + "id": 1653, "nodeType": "PlaceholderStatement", - "src": "3051:1:9" + "src": "3341:1:9" } ] }, "documentation": { - "id": 1600, + "id": 1633, "nodeType": "StructuredDocumentation", - "src": "2657:261:9", + "src": "2947:261:9", "text": " @dev Modifier to make a function callable only by a certain role. In\n addition to checking the sender's role, `address(0)` 's role is also\n considered. Granting a role to `address(0)` is equivalent to enabling\n this role for everyone." }, - "id": 1622, + "id": 1655, "name": "onlyRoleOrOpenRole", - "nameLocation": "2930:18:9", + "nameLocation": "3220:18:9", "nodeType": "ModifierDefinition", "parameters": { - "id": 1603, + "id": 1636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1602, + "id": 1635, "mutability": "mutable", "name": "role", - "nameLocation": "2957:4:9", + "nameLocation": "3247:4:9", "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "2949:12:9", + "scope": 1655, + "src": "3239:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27486,10 +28091,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1601, + "id": 1634, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2949:7:9", + "src": "3239:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27498,26 +28103,26 @@ "visibility": "internal" } ], - "src": "2948:14:9" + "src": "3238:14:9" }, - "src": "2921:136:9", + "src": "3211:136:9", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1626, + "id": 1659, "nodeType": "Block", - "src": "3178:2:9", + "src": "3468:2:9", "statements": [] }, "documentation": { - "id": 1623, + "id": 1656, "nodeType": "StructuredDocumentation", - "src": "3061:87:9", + "src": "3351:87:9", "text": " @dev Contract might receive/hold ETH as part of the maintenance process." }, - "id": 1627, + "id": 1660, "implemented": true, "kind": "receive", "modifiers": [], @@ -27525,28 +28130,28 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 1624, + "id": 1657, "nodeType": "ParameterList", "parameters": [], - "src": "3158:2:9" + "src": "3448:2:9" }, "returnParameters": { - "id": 1625, + "id": 1658, "nodeType": "ParameterList", "parameters": [], - "src": "3178:0:9" + "src": "3468:0:9" }, - "scope": 2391, - "src": "3151:29:9", + "scope": 2424, + "src": "3441:29:9", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1641, + "id": 1674, "nodeType": "Block", - "src": "3402:38:9", + "src": "3692:38:9", "statements": [ { "expression": { @@ -27554,7 +28159,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1639, + "id": 1672, "isConstant": false, "isLValue": false, "isPure": false, @@ -27562,12 +28167,12 @@ "leftExpression": { "arguments": [ { - "id": 1636, + "id": 1669, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "3428:2:9", + "referencedDeclaration": 1663, + "src": "3718:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27581,18 +28186,18 @@ "typeString": "bytes32" } ], - "id": 1635, + "id": 1668, "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "3415:12:9", + "referencedDeclaration": 1791, + "src": "3705:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1637, + "id": 1670, "isConstant": false, "isLValue": false, "isPure": false, @@ -27600,7 +28205,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3415:16:9", + "src": "3705:16:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -27611,60 +28216,60 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1638, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3434:1:9", + "src": "3724:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3415:20:9", + "src": "3705:20:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1634, - "id": 1640, + "functionReturnParameters": 1667, + "id": 1673, "nodeType": "Return", - "src": "3408:27:9" + "src": "3698:27:9" } ] }, "documentation": { - "id": 1628, + "id": 1661, "nodeType": "StructuredDocumentation", - "src": "3184:139:9", + "src": "3474:139:9", "text": " @dev Returns whether an id correspond to a registered operation. This\n includes both Pending, Ready and Done operations." }, "functionSelector": "31d50750", - "id": 1642, + "id": 1675, "implemented": true, "kind": "function", "modifiers": [], "name": "isOperation", - "nameLocation": "3335:11:9", + "nameLocation": "3625:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1631, + "id": 1664, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1630, + "id": 1663, "mutability": "mutable", "name": "id", - "nameLocation": "3355:2:9", + "nameLocation": "3645:2:9", "nodeType": "VariableDeclaration", - "scope": 1642, - "src": "3347:10:9", + "scope": 1675, + "src": "3637:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27672,10 +28277,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1629, + "id": 1662, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3347:7:9", + "src": "3637:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27684,21 +28289,21 @@ "visibility": "internal" } ], - "src": "3346:12:9" + "src": "3636:12:9" }, "returnParameters": { - "id": 1634, + "id": 1667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1633, + "id": 1666, "mutability": "mutable", "name": "pending", - "nameLocation": "3393:7:9", + "nameLocation": "3683:7:9", "nodeType": "VariableDeclaration", - "scope": 1642, - "src": "3388:12:9", + "scope": 1675, + "src": "3678:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27706,10 +28311,10 @@ "typeString": "bool" }, "typeName": { - "id": 1632, + "id": 1665, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3388:4:9", + "src": "3678:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27718,19 +28323,19 @@ "visibility": "internal" } ], - "src": "3387:14:9" + "src": "3677:14:9" }, - "scope": 2391, - "src": "3326:114:9", + "scope": 2424, + "src": "3616:114:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1656, + "id": 1689, "nodeType": "Block", - "src": "3605:52:9", + "src": "3895:52:9", "statements": [ { "expression": { @@ -27738,7 +28343,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1654, + "id": 1687, "isConstant": false, "isLValue": false, "isPure": false, @@ -27746,12 +28351,12 @@ "leftExpression": { "arguments": [ { - "id": 1651, + "id": 1684, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1645, - "src": "3631:2:9", + "referencedDeclaration": 1678, + "src": "3921:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27765,18 +28370,18 @@ "typeString": "bytes32" } ], - "id": 1650, + "id": 1683, "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "3618:12:9", + "referencedDeclaration": 1791, + "src": "3908:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1652, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": false, @@ -27784,7 +28389,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3618:16:9", + "src": "3908:16:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -27794,57 +28399,57 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 1653, + "id": 1686, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1418, - "src": "3637:15:9", + "referencedDeclaration": 1423, + "src": "3927:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3618:34:9", + "src": "3908:34:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1649, - "id": 1655, + "functionReturnParameters": 1682, + "id": 1688, "nodeType": "Return", - "src": "3611:41:9" + "src": "3901:41:9" } ] }, "documentation": { - "id": 1643, + "id": 1676, "nodeType": "StructuredDocumentation", - "src": "3444:67:9", + "src": "3734:67:9", "text": " @dev Returns whether an operation is pending or not." }, "functionSelector": "584b153e", - "id": 1657, + "id": 1690, "implemented": true, "kind": "function", "modifiers": [], "name": "isOperationPending", - "nameLocation": "3523:18:9", + "nameLocation": "3813:18:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1646, + "id": 1679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1645, + "id": 1678, "mutability": "mutable", "name": "id", - "nameLocation": "3555:2:9", + "nameLocation": "3845:2:9", "nodeType": "VariableDeclaration", - "scope": 1657, - "src": "3547:10:9", + "scope": 1690, + "src": "3837:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27852,10 +28457,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1644, + "id": 1677, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3547:7:9", + "src": "3837:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27864,21 +28469,21 @@ "visibility": "internal" } ], - "src": "3541:20:9" + "src": "3831:20:9" }, "returnParameters": { - "id": 1649, + "id": 1682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1648, + "id": 1681, "mutability": "mutable", "name": "pending", - "nameLocation": "3596:7:9", + "nameLocation": "3886:7:9", "nodeType": "VariableDeclaration", - "scope": 1657, - "src": "3591:12:9", + "scope": 1690, + "src": "3881:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27886,10 +28491,10 @@ "typeString": "bool" }, "typeName": { - "id": 1647, + "id": 1680, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3591:4:9", + "src": "3881:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27898,34 +28503,34 @@ "visibility": "internal" } ], - "src": "3590:14:9" + "src": "3880:14:9" }, - "scope": 2391, - "src": "3514:143:9", + "scope": 2424, + "src": "3804:143:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1705, + "id": 1738, "nodeType": "Block", - "src": "3727:263:9", + "src": "4017:263:9", "statements": [ { "assignments": [ - 1665 + 1698 ], "declarations": [ { "constant": false, - "id": 1665, + "id": 1698, "mutability": "mutable", "name": "count", - "nameLocation": "3741:5:9", + "nameLocation": "4031:5:9", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "3733:13:9", + "scope": 1738, + "src": "4023:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27933,10 +28538,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1664, + "id": 1697, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3733:7:9", + "src": "4023:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27945,17 +28550,17 @@ "visibility": "internal" } ], - "id": 1667, + "id": 1700, "initialValue": { "hexValue": "30", - "id": 1666, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3749:1:9", + "src": "4039:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -27963,22 +28568,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3733:17:9" + "src": "4023:17:9" }, { "assignments": [ - 1669 + 1702 ], "declarations": [ { "constant": false, - "id": 1669, + "id": 1702, "mutability": "mutable", "name": "executorCount", - "nameLocation": "3764:13:9", + "nameLocation": "4054:13:9", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "3756:21:9", + "scope": 1738, + "src": "4046:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27986,10 +28591,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1668, + "id": 1701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3756:7:9", + "src": "4046:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27998,16 +28603,16 @@ "visibility": "internal" } ], - "id": 1673, + "id": 1706, "initialValue": { "arguments": [ { - "id": 1671, + "id": 1704, "name": "EXECUTOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, - "src": "3799:13:9", + "src": "4089:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28021,18 +28626,18 @@ "typeString": "bytes32" } ], - "id": 1670, + "id": 1703, "name": "getRoleMemberCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 384, - "src": "3780:18:9", + "src": "4070:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1672, + "id": 1705, "isConstant": false, "isLValue": false, "isPure": false, @@ -28040,7 +28645,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3780:33:9", + "src": "4070:33:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -28048,37 +28653,37 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3756:57:9" + "src": "4046:57:9" }, { "body": { - "id": 1703, + "id": 1736, "nodeType": "Block", - "src": "3863:123:9", + "src": "4153:123:9", "statements": [ { "condition": { "baseExpression": { "baseExpression": { - "id": 1684, + "id": 1717, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1428, - "src": "3875:13:9", + "referencedDeclaration": 1433, + "src": "4165:13:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 1686, + "id": 1719, "indexExpression": { - "id": 1685, + "id": 1718, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "3889:2:9", + "referencedDeclaration": 1692, + "src": "4179:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28089,34 +28694,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3875:17:9", + "src": "4165:17:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1691, + "id": 1724, "indexExpression": { "arguments": [ { - "id": 1688, + "id": 1721, "name": "EXECUTOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, - "src": "3907:13:9", + "src": "4197:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1689, + "id": 1722, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "3922:1:9", + "referencedDeclaration": 1708, + "src": "4212:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28134,18 +28739,18 @@ "typeString": "uint256" } ], - "id": 1687, + "id": 1720, "name": "getRoleMember", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 368, - "src": "3893:13:9", + "src": "4183:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,uint256) view returns (address)" } }, - "id": 1690, + "id": 1723, "isConstant": false, "isLValue": false, "isPure": false, @@ -28153,7 +28758,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3893:31:9", + "src": "4183:31:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -28165,29 +28770,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3875:50:9", + "src": "4165:50:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1696, + "id": 1729, "nodeType": "IfStatement", - "src": "3871:66:9", + "src": "4161:66:9", "trueBody": { "expression": { - "id": 1694, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1692, + "id": 1725, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "3927:5:9", + "referencedDeclaration": 1698, + "src": "4217:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28197,29 +28802,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 1693, + "id": 1726, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3936:1:9", + "src": "4226:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "3927:10:9", + "src": "4217:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1695, + "id": 1728, "nodeType": "ExpressionStatement", - "src": "3927:10:9" + "src": "4217:10:9" } }, { @@ -28228,18 +28833,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1699, + "id": 1732, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1697, + "id": 1730, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "3949:5:9", + "referencedDeclaration": 1698, + "src": "4239:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28248,47 +28853,47 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1698, + "id": 1731, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "3958:8:9", + "referencedDeclaration": 1437, + "src": "4248:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3949:17:9", + "src": "4239:17:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1702, + "id": 1735, "nodeType": "IfStatement", - "src": "3945:34:9", + "src": "4235:34:9", "trueBody": { "expression": { "hexValue": "74727565", - "id": 1700, + "id": 1733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3975:4:9", + "src": "4265:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 1663, - "id": 1701, + "functionReturnParameters": 1696, + "id": 1734, "nodeType": "Return", - "src": "3968:11:9" + "src": "4258:11:9" } } ] @@ -28298,18 +28903,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1680, + "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1678, + "id": 1711, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "3839:1:9", + "referencedDeclaration": 1708, + "src": "4129:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28318,38 +28923,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1679, + "id": 1712, "name": "executorCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1669, - "src": "3843:13:9", + "referencedDeclaration": 1702, + "src": "4133:13:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3839:17:9", + "src": "4129:17:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1704, + "id": 1737, "initializationExpression": { "assignments": [ - 1675 + 1708 ], "declarations": [ { "constant": false, - "id": 1675, + "id": 1708, "mutability": "mutable", "name": "i", - "nameLocation": "3832:1:9", + "nameLocation": "4122:1:9", "nodeType": "VariableDeclaration", - "scope": 1704, - "src": "3824:9:9", + "scope": 1737, + "src": "4114:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28357,10 +28962,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1674, + "id": 1707, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3824:7:9", + "src": "4114:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28369,17 +28974,17 @@ "visibility": "internal" } ], - "id": 1677, + "id": 1710, "initialValue": { "hexValue": "30", - "id": 1676, + "id": 1709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3836:1:9", + "src": "4126:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -28387,11 +28992,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3824:13:9" + "src": "4114:13:9" }, "loopExpression": { "expression": { - "id": 1682, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -28399,14 +29004,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3858:3:9", + "src": "4148:3:9", "subExpression": { - "id": 1681, + "id": 1714, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "3858:1:9", + "referencedDeclaration": 1708, + "src": "4148:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28417,36 +29022,36 @@ "typeString": "uint256" } }, - "id": 1683, + "id": 1716, "nodeType": "ExpressionStatement", - "src": "3858:3:9" + "src": "4148:3:9" }, "nodeType": "ForStatement", - "src": "3819:167:9" + "src": "4109:167:9" } ] }, "functionSelector": "6486aa51", - "id": 1706, + "id": 1739, "implemented": true, "kind": "function", "modifiers": [], "name": "isConfirmed", - "nameLocation": "3670:11:9", + "nameLocation": "3960:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1660, + "id": 1693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1659, + "id": 1692, "mutability": "mutable", "name": "id", - "nameLocation": "3690:2:9", + "nameLocation": "3980:2:9", "nodeType": "VariableDeclaration", - "scope": 1706, - "src": "3682:10:9", + "scope": 1739, + "src": "3972:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28454,10 +29059,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1658, + "id": 1691, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3682:7:9", + "src": "3972:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28466,21 +29071,21 @@ "visibility": "internal" } ], - "src": "3681:12:9" + "src": "3971:12:9" }, "returnParameters": { - "id": 1663, + "id": 1696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1662, + "id": 1695, "mutability": "mutable", "name": "ready", - "nameLocation": "3720:5:9", + "nameLocation": "4010:5:9", "nodeType": "VariableDeclaration", - "scope": 1706, - "src": "3715:10:9", + "scope": 1739, + "src": "4005:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28488,10 +29093,10 @@ "typeString": "bool" }, "typeName": { - "id": 1661, + "id": 1694, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3715:4:9", + "src": "4005:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28500,34 +29105,34 @@ "visibility": "internal" } ], - "src": "3714:12:9" + "src": "4004:12:9" }, - "scope": 2391, - "src": "3661:329:9", + "scope": 2424, + "src": "3951:329:9", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { - "id": 1729, + "id": 1762, "nodeType": "Block", - "src": "4149:119:9", + "src": "4439:119:9", "statements": [ { "assignments": [ - 1715 + 1748 ], "declarations": [ { "constant": false, - "id": 1715, + "id": 1748, "mutability": "mutable", "name": "timestamp", - "nameLocation": "4163:9:9", + "nameLocation": "4453:9:9", "nodeType": "VariableDeclaration", - "scope": 1729, - "src": "4155:17:9", + "scope": 1762, + "src": "4445:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28535,10 +29140,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1714, + "id": 1747, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4155:7:9", + "src": "4445:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28547,16 +29152,16 @@ "visibility": "internal" } ], - "id": 1719, + "id": 1752, "initialValue": { "arguments": [ { - "id": 1717, + "id": 1750, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "4188:2:9", + "referencedDeclaration": 1742, + "src": "4478:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28570,18 +29175,18 @@ "typeString": "bytes32" } ], - "id": 1716, + "id": 1749, "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "4175:12:9", + "referencedDeclaration": 1791, + "src": "4465:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1718, + "id": 1751, "isConstant": false, "isLValue": false, "isPure": false, @@ -28589,7 +29194,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4175:16:9", + "src": "4465:16:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -28597,7 +29202,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4155:36:9" + "src": "4445:36:9" }, { "expression": { @@ -28605,7 +29210,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1727, + "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, @@ -28615,18 +29220,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1722, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1720, + "id": 1753, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "4204:9:9", + "referencedDeclaration": 1748, + "src": "4494:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28635,18 +29240,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 1721, + "id": 1754, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1418, - "src": "4216:15:9", + "referencedDeclaration": 1423, + "src": "4506:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4204:27:9", + "src": "4494:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28659,18 +29264,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1726, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1723, + "id": 1756, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "4235:9:9", + "referencedDeclaration": 1748, + "src": "4525:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28680,76 +29285,76 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 1724, + "id": 1757, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "4248:5:9", + "src": "4538:5:9", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1725, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "4248:15:9", + "src": "4538:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4235:28:9", + "src": "4525:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4204:59:9", + "src": "4494:59:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1713, - "id": 1728, + "functionReturnParameters": 1746, + "id": 1761, "nodeType": "Return", - "src": "4197:66:9" + "src": "4487:66:9" } ] }, "documentation": { - "id": 1707, + "id": 1740, "nodeType": "StructuredDocumentation", - "src": "3994:65:9", + "src": "4284:65:9", "text": " @dev Returns whether an operation is ready or not." }, "functionSelector": "13bc9f20", - "id": 1730, + "id": 1763, "implemented": true, "kind": "function", "modifiers": [], "name": "isOperationReady", - "nameLocation": "4071:16:9", + "nameLocation": "4361:16:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1710, + "id": 1743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1709, + "id": 1742, "mutability": "mutable", "name": "id", - "nameLocation": "4101:2:9", + "nameLocation": "4391:2:9", "nodeType": "VariableDeclaration", - "scope": 1730, - "src": "4093:10:9", + "scope": 1763, + "src": "4383:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28757,10 +29362,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1708, + "id": 1741, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4093:7:9", + "src": "4383:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28769,21 +29374,21 @@ "visibility": "internal" } ], - "src": "4087:20:9" + "src": "4377:20:9" }, "returnParameters": { - "id": 1713, + "id": 1746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1712, + "id": 1745, "mutability": "mutable", "name": "ready", - "nameLocation": "4142:5:9", + "nameLocation": "4432:5:9", "nodeType": "VariableDeclaration", - "scope": 1730, - "src": "4137:10:9", + "scope": 1763, + "src": "4427:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28791,10 +29396,10 @@ "typeString": "bool" }, "typeName": { - "id": 1711, + "id": 1744, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4137:4:9", + "src": "4427:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28803,19 +29408,19 @@ "visibility": "internal" } ], - "src": "4136:12:9" + "src": "4426:12:9" }, - "scope": 2391, - "src": "4062:206:9", + "scope": 2424, + "src": "4352:206:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1744, + "id": 1777, "nodeType": "Block", - "src": "4416:53:9", + "src": "4706:53:9", "statements": [ { "expression": { @@ -28823,7 +29428,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1742, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, @@ -28831,12 +29436,12 @@ "leftExpression": { "arguments": [ { - "id": 1739, + "id": 1772, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "4442:2:9", + "referencedDeclaration": 1766, + "src": "4732:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28850,18 +29455,18 @@ "typeString": "bytes32" } ], - "id": 1738, + "id": 1771, "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "4429:12:9", + "referencedDeclaration": 1791, + "src": "4719:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1740, + "id": 1773, "isConstant": false, "isLValue": false, "isPure": false, @@ -28869,7 +29474,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4429:16:9", + "src": "4719:16:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -28879,57 +29484,57 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1741, + "id": 1774, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1418, - "src": "4449:15:9", + "referencedDeclaration": 1423, + "src": "4739:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4429:35:9", + "src": "4719:35:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1737, - "id": 1743, + "functionReturnParameters": 1770, + "id": 1776, "nodeType": "Return", - "src": "4422:42:9" + "src": "4712:42:9" } ] }, "documentation": { - "id": 1731, + "id": 1764, "nodeType": "StructuredDocumentation", - "src": "4272:64:9", + "src": "4562:64:9", "text": " @dev Returns whether an operation is done or not." }, "functionSelector": "2ab0f529", - "id": 1745, + "id": 1778, "implemented": true, "kind": "function", "modifiers": [], "name": "isOperationDone", - "nameLocation": "4348:15:9", + "nameLocation": "4638:15:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1734, + "id": 1767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1733, + "id": 1766, "mutability": "mutable", "name": "id", - "nameLocation": "4372:2:9", + "nameLocation": "4662:2:9", "nodeType": "VariableDeclaration", - "scope": 1745, - "src": "4364:10:9", + "scope": 1778, + "src": "4654:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28937,10 +29542,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1732, + "id": 1765, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4364:7:9", + "src": "4654:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28949,21 +29554,21 @@ "visibility": "internal" } ], - "src": "4363:12:9" + "src": "4653:12:9" }, "returnParameters": { - "id": 1737, + "id": 1770, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1736, + "id": 1769, "mutability": "mutable", "name": "done", - "nameLocation": "4410:4:9", + "nameLocation": "4700:4:9", "nodeType": "VariableDeclaration", - "scope": 1745, - "src": "4405:9:9", + "scope": 1778, + "src": "4695:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28971,10 +29576,10 @@ "typeString": "bool" }, "typeName": { - "id": 1735, + "id": 1768, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4405:4:9", + "src": "4695:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28983,42 +29588,42 @@ "visibility": "internal" } ], - "src": "4404:11:9" + "src": "4694:11:9" }, - "scope": 2391, - "src": "4339:130:9", + "scope": 2424, + "src": "4629:130:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1757, + "id": 1790, "nodeType": "Block", - "src": "4696:33:9", + "src": "4986:33:9", "statements": [ { "expression": { "baseExpression": { - "id": 1753, + "id": 1786, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "4709:11:9", + "referencedDeclaration": 1427, + "src": "4999:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1755, + "id": 1788, "indexExpression": { - "id": 1754, + "id": 1787, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "4721:2:9", + "referencedDeclaration": 1781, + "src": "5011:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29029,46 +29634,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4709:15:9", + "src": "4999:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1752, - "id": 1756, + "functionReturnParameters": 1785, + "id": 1789, "nodeType": "Return", - "src": "4702:22:9" + "src": "4992:22:9" } ] }, "documentation": { - "id": 1746, + "id": 1779, "nodeType": "StructuredDocumentation", - "src": "4473:130:9", + "src": "4763:130:9", "text": " @dev Returns the timestamp at with an operation becomes ready (0 for\n unset operations, 1 for done operations)." }, "functionSelector": "d45c4435", - "id": 1758, + "id": 1791, "implemented": true, "kind": "function", "modifiers": [], "name": "getTimestamp", - "nameLocation": "4615:12:9", + "nameLocation": "4905:12:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1749, + "id": 1782, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1748, + "id": 1781, "mutability": "mutable", "name": "id", - "nameLocation": "4641:2:9", + "nameLocation": "4931:2:9", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "4633:10:9", + "scope": 1791, + "src": "4923:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29076,10 +29681,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1747, + "id": 1780, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4633:7:9", + "src": "4923:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29088,21 +29693,21 @@ "visibility": "internal" } ], - "src": "4627:20:9" + "src": "4917:20:9" }, "returnParameters": { - "id": 1752, + "id": 1785, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1751, + "id": 1784, "mutability": "mutable", "name": "timestamp", - "nameLocation": "4685:9:9", + "nameLocation": "4975:9:9", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "4677:17:9", + "scope": 1791, + "src": "4967:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29110,10 +29715,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1750, + "id": 1783, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4677:7:9", + "src": "4967:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29122,19 +29727,19 @@ "visibility": "internal" } ], - "src": "4676:19:9" + "src": "4966:19:9" }, - "scope": 2391, - "src": "4606:123:9", + "scope": 2424, + "src": "4896:123:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1785, + "id": 1818, "nodeType": "Block", - "src": "5009:79:9", + "src": "5299:79:9", "statements": [ { "expression": { @@ -29142,60 +29747,60 @@ { "arguments": [ { - "id": 1777, + "id": 1810, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5043:6:9", + "referencedDeclaration": 1794, + "src": "5333:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1778, + "id": 1811, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "5051:5:9", + "referencedDeclaration": 1796, + "src": "5341:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1779, + "id": 1812, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "5058:4:9", + "referencedDeclaration": 1798, + "src": "5348:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 1780, + "id": 1813, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "5064:11:9", + "referencedDeclaration": 1800, + "src": "5354:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1781, + "id": 1814, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "5077:4:9", + "referencedDeclaration": 1802, + "src": "5367:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29226,31 +29831,31 @@ } ], "expression": { - "id": 1775, + "id": 1808, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "5032:3:9", + "src": "5322:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1776, + "id": 1809, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", - "src": "5032:10:9", + "src": "5322:10:9", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1782, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": false, @@ -29258,7 +29863,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5032:50:9", + "src": "5322:50:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -29273,18 +29878,18 @@ "typeString": "bytes memory" } ], - "id": 1774, + "id": 1807, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "5022:9:9", + "src": "5312:9:9", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1783, + "id": 1816, "isConstant": false, "isLValue": false, "isPure": false, @@ -29292,47 +29897,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5022:61:9", + "src": "5312:61:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 1773, - "id": 1784, + "functionReturnParameters": 1806, + "id": 1817, "nodeType": "Return", - "src": "5015:68:9" + "src": "5305:68:9" } ] }, "documentation": { - "id": 1759, + "id": 1792, "nodeType": "StructuredDocumentation", - "src": "4733:96:9", + "src": "5023:96:9", "text": " @dev Returns the identifier of an operation containing a single\n transaction." }, "functionSelector": "8065657f", - "id": 1786, + "id": 1819, "implemented": true, "kind": "function", "modifiers": [], "name": "hashOperation", - "nameLocation": "4841:13:9", + "nameLocation": "5131:13:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1770, + "id": 1803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1761, + "id": 1794, "mutability": "mutable", "name": "target", - "nameLocation": "4868:6:9", + "nameLocation": "5158:6:9", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "4860:14:9", + "scope": 1819, + "src": "5150:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29340,10 +29945,10 @@ "typeString": "address" }, "typeName": { - "id": 1760, + "id": 1793, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4860:7:9", + "src": "5150:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -29354,13 +29959,13 @@ }, { "constant": false, - "id": 1763, + "id": 1796, "mutability": "mutable", "name": "value", - "nameLocation": "4888:5:9", + "nameLocation": "5178:5:9", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "4880:13:9", + "scope": 1819, + "src": "5170:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29368,10 +29973,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1762, + "id": 1795, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4880:7:9", + "src": "5170:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29381,13 +29986,13 @@ }, { "constant": false, - "id": 1765, + "id": 1798, "mutability": "mutable", "name": "data", - "nameLocation": "4914:4:9", + "nameLocation": "5204:4:9", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "4899:19:9", + "scope": 1819, + "src": "5189:19:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -29395,10 +30000,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1764, + "id": 1797, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4899:5:9", + "src": "5189:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -29406,442 +30011,15 @@ }, "visibility": "internal" }, - { - "constant": false, - "id": 1767, - "mutability": "mutable", - "name": "predecessor", - "nameLocation": "4932:11:9", - "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "4924:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1766, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4924:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1769, - "mutability": "mutable", - "name": "salt", - "nameLocation": "4957:4:9", - "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "4949:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1768, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4949:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4854:111:9" - }, - "returnParameters": { - "id": 1773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1772, - "mutability": "mutable", - "name": "hash", - "nameLocation": "5003:4:9", - "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "4995:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1771, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4995:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4994:14:9" - }, - "scope": 2391, - "src": "4832:256:9", - "stateMutability": "pure", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 1816, - "nodeType": "Block", - "src": "5403:82:9", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1808, - "name": "targets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "5437:7:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "id": 1809, - "name": "values", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "5446:6:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - { - "id": 1810, - "name": "datas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "5454:5:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - { - "id": 1811, - "name": "predecessor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "5461:11:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 1812, - "name": "salt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "5474:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 1806, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "5426:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "5426:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5426:53:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1805, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "5416:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5416:64:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 1804, - "id": 1815, - "nodeType": "Return", - "src": "5409:71:9" - } - ] - }, - "documentation": { - "id": 1787, - "nodeType": "StructuredDocumentation", - "src": "5092:99:9", - "text": " @dev Returns the identifier of an operation containing a batch of\n transactions." - }, - "functionSelector": "b1c5f427", - "id": 1817, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashOperationBatch", - "nameLocation": "5203:18:9", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "mutability": "mutable", - "name": "targets", - "nameLocation": "5246:7:9", - "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "5227:26:9", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5227:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1789, - "nodeType": "ArrayTypeName", - "src": "5227:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1793, - "mutability": "mutable", - "name": "values", - "nameLocation": "5278:6:9", - "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "5259:25:9", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1791, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1792, - "nodeType": "ArrayTypeName", - "src": "5259:9:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1796, - "mutability": "mutable", - "name": "datas", - "nameLocation": "5307:5:9", - "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "5290:22:9", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 1794, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5290:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 1795, - "nodeType": "ArrayTypeName", - "src": "5290:7:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1798, - "mutability": "mutable", - "name": "predecessor", - "nameLocation": "5326:11:9", - "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "5318:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1797, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5318:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, { "constant": false, "id": 1800, "mutability": "mutable", - "name": "salt", - "nameLocation": "5351:4:9", + "name": "predecessor", + "nameLocation": "5222:11:9", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "5343:12:9", + "scope": 1819, + "src": "5214:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29852,30 +30030,23 @@ "id": 1799, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5343:7:9", + "src": "5214:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" - } - ], - "src": "5221:138:9" - }, - "returnParameters": { - "id": 1804, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1803, + "id": 1802, "mutability": "mutable", - "name": "hash", - "nameLocation": "5397:4:9", + "name": "salt", + "nameLocation": "5247:4:9", "nodeType": "VariableDeclaration", - "scope": 1817, - "src": "5389:12:9", + "scope": 1819, + "src": "5239:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29883,10 +30054,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1802, + "id": 1801, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5389:7:9", + "src": "5239:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29895,34 +30066,468 @@ "visibility": "internal" } ], - "src": "5388:14:9" + "src": "5144:111:9" }, - "scope": 2391, - "src": "5194:291:9", + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "hash", + "nameLocation": "5293:4:9", + "nodeType": "VariableDeclaration", + "scope": 1819, + "src": "5285:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1804, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5285:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5284:14:9" + }, + "scope": 2424, + "src": "5122:256:9", "stateMutability": "pure", "virtual": true, "visibility": "public" }, { "body": { - "id": 1861, + "id": 1849, "nodeType": "Block", - "src": "5872:175:9", + "src": "5693:82:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1841, + "name": "targets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "5727:7:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "id": 1842, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "5736:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "id": 1843, + "name": "datas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "5744:5:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + { + "id": 1844, + "name": "predecessor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "5751:11:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1845, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "5764:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 1839, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "5716:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "5716:10:9", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5716:53:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1838, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "5706:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5706:64:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1837, + "id": 1848, + "nodeType": "Return", + "src": "5699:71:9" + } + ] + }, + "documentation": { + "id": 1820, + "nodeType": "StructuredDocumentation", + "src": "5382:99:9", + "text": " @dev Returns the identifier of an operation containing a batch of\n transactions." + }, + "functionSelector": "b1c5f427", + "id": 1850, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hashOperationBatch", + "nameLocation": "5493:18:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1823, + "mutability": "mutable", + "name": "targets", + "nameLocation": "5536:7:9", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "5517:26:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5517:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1822, + "nodeType": "ArrayTypeName", + "src": "5517:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "values", + "nameLocation": "5568:6:9", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "5549:25:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5549:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1825, + "nodeType": "ArrayTypeName", + "src": "5549:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "datas", + "nameLocation": "5597:5:9", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "5580:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 1827, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5580:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 1828, + "nodeType": "ArrayTypeName", + "src": "5580:7:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "predecessor", + "nameLocation": "5616:11:9", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "5608:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1830, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5608:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5641:4:9", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "5633:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1832, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5633:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5511:138:9" + }, + "returnParameters": { + "id": 1837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1836, + "mutability": "mutable", + "name": "hash", + "nameLocation": "5687:4:9", + "nodeType": "VariableDeclaration", + "scope": 1850, + "src": "5679:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1835, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5679:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5678:14:9" + }, + "scope": 2424, + "src": "5484:291:9", + "stateMutability": "pure", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1894, + "nodeType": "Block", + "src": "6162:175:9", "statements": [ { "assignments": [ - 1837 + 1870 ], "declarations": [ { "constant": false, - "id": 1837, + "id": 1870, "mutability": "mutable", "name": "id", - "nameLocation": "5886:2:9", + "nameLocation": "6176:2:9", "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "5878:10:9", + "scope": 1894, + "src": "6168:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29930,10 +30535,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1836, + "id": 1869, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5878:7:9", + "src": "6168:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29942,64 +30547,64 @@ "visibility": "internal" } ], - "id": 1845, + "id": 1878, "initialValue": { "arguments": [ { - "id": 1839, + "id": 1872, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "5905:6:9", + "referencedDeclaration": 1853, + "src": "6195:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1840, + "id": 1873, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "5913:5:9", + "referencedDeclaration": 1855, + "src": "6203:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1841, + "id": 1874, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, - "src": "5920:4:9", + "referencedDeclaration": 1857, + "src": "6210:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 1842, + "id": 1875, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "5926:11:9", + "referencedDeclaration": 1859, + "src": "6216:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1843, + "id": 1876, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "5939:4:9", + "referencedDeclaration": 1861, + "src": "6229:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30029,18 +30634,18 @@ "typeString": "bytes32" } ], - "id": 1838, + "id": 1871, "name": "hashOperation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1786, - "src": "5891:13:9", + "referencedDeclaration": 1819, + "src": "6181:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)" } }, - "id": 1844, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -30048,7 +30653,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5891:53:9", + "src": "6181:53:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30056,30 +30661,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5878:66:9" + "src": "6168:66:9" }, { "expression": { "arguments": [ { - "id": 1847, + "id": 1880, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "5960:2:9", + "referencedDeclaration": 1870, + "src": "6250:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1848, + "id": 1881, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "5964:5:9", + "referencedDeclaration": 1863, + "src": "6254:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30097,18 +30702,18 @@ "typeString": "uint256" } ], - "id": 1846, + "id": 1879, "name": "_schedule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1980, - "src": "5950:9:9", + "referencedDeclaration": 2013, + "src": "6240:9:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256)" } }, - "id": 1849, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": false, @@ -30116,27 +30721,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5950:20:9", + "src": "6240:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1850, + "id": 1883, "nodeType": "ExpressionStatement", - "src": "5950:20:9" + "src": "6240:20:9" }, { "eventCall": { "arguments": [ { - "id": 1852, + "id": 1885, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1837, - "src": "5995:2:9", + "referencedDeclaration": 1870, + "src": "6285:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30144,14 +30749,14 @@ }, { "hexValue": "30", - "id": 1853, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5999:1:9", + "src": "6289:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -30159,60 +30764,60 @@ "value": "0" }, { - "id": 1854, + "id": 1887, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "6002:6:9", + "referencedDeclaration": 1853, + "src": "6292:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1855, + "id": 1888, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "6010:5:9", + "referencedDeclaration": 1855, + "src": "6300:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1856, + "id": 1889, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1824, - "src": "6017:4:9", + "referencedDeclaration": 1857, + "src": "6307:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 1857, + "id": 1890, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1826, - "src": "6023:11:9", + "referencedDeclaration": 1859, + "src": "6313:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1858, + "id": 1891, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "6036:5:9", + "referencedDeclaration": 1863, + "src": "6326:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30250,18 +30855,18 @@ "typeString": "uint256" } ], - "id": 1851, + "id": 1884, "name": "CallScheduled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1449, - "src": "5981:13:9", + "referencedDeclaration": 1454, + "src": "6271:13:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)" } }, - "id": 1859, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, @@ -30269,74 +30874,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5981:61:9", + "src": "6271:61:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1860, + "id": 1893, "nodeType": "EmitStatement", - "src": "5976:66:9" + "src": "6266:66:9" } ] }, "documentation": { - "id": 1818, + "id": 1851, "nodeType": "StructuredDocumentation", - "src": "5489:193:9", + "src": "5779:193:9", "text": " @dev Schedule an operation containing a single transaction.\n Emits a {CallScheduled} event.\n Requirements:\n - the caller must have the 'proposer' role." }, "functionSelector": "01d5062a", - "id": 1862, + "id": 1895, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1833, + "id": 1866, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "5857:13:9", + "src": "6147:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1834, + "id": 1867, "kind": "modifierInvocation", "modifierName": { - "id": 1832, + "id": 1865, "name": "onlyRole", "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "5848:8:9" + "src": "6138:8:9" }, "nodeType": "ModifierInvocation", - "src": "5848:23:9" + "src": "6138:23:9" } ], "name": "schedule", - "nameLocation": "5694:8:9", + "nameLocation": "5984:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1831, + "id": 1864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1820, + "id": 1853, "mutability": "mutable", "name": "target", - "nameLocation": "5716:6:9", + "nameLocation": "6006:6:9", "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "5708:14:9", + "scope": 1895, + "src": "5998:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30344,10 +30949,10 @@ "typeString": "address" }, "typeName": { - "id": 1819, + "id": 1852, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5708:7:9", + "src": "5998:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -30358,13 +30963,13 @@ }, { "constant": false, - "id": 1822, + "id": 1855, "mutability": "mutable", "name": "value", - "nameLocation": "5736:5:9", + "nameLocation": "6026:5:9", "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "5728:13:9", + "scope": 1895, + "src": "6018:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30372,10 +30977,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1821, + "id": 1854, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5728:7:9", + "src": "6018:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30385,13 +30990,13 @@ }, { "constant": false, - "id": 1824, + "id": 1857, "mutability": "mutable", "name": "data", - "nameLocation": "5762:4:9", + "nameLocation": "6052:4:9", "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "5747:19:9", + "scope": 1895, + "src": "6037:19:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -30399,10 +31004,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1823, + "id": 1856, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5747:5:9", + "src": "6037:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -30412,13 +31017,13 @@ }, { "constant": false, - "id": 1826, + "id": 1859, "mutability": "mutable", "name": "predecessor", - "nameLocation": "5780:11:9", + "nameLocation": "6070:11:9", "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "5772:19:9", + "scope": 1895, + "src": "6062:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30426,10 +31031,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1825, + "id": 1858, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5772:7:9", + "src": "6062:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30439,13 +31044,13 @@ }, { "constant": false, - "id": 1828, + "id": 1861, "mutability": "mutable", "name": "salt", - "nameLocation": "5805:4:9", + "nameLocation": "6095:4:9", "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "5797:12:9", + "scope": 1895, + "src": "6087:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30453,10 +31058,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1827, + "id": 1860, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5797:7:9", + "src": "6087:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30466,13 +31071,13 @@ }, { "constant": false, - "id": 1830, + "id": 1863, "mutability": "mutable", "name": "delay", - "nameLocation": "5823:5:9", + "nameLocation": "6113:5:9", "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "5815:13:9", + "scope": 1895, + "src": "6105:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30480,10 +31085,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1829, + "id": 1862, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5815:7:9", + "src": "6105:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30492,25 +31097,25 @@ "visibility": "internal" } ], - "src": "5702:130:9" + "src": "5992:130:9" }, "returnParameters": { - "id": 1835, + "id": 1868, "nodeType": "ParameterList", "parameters": [], - "src": "5872:0:9" + "src": "6162:0:9" }, - "scope": 2391, - "src": "5685:362:9", + "scope": 2424, + "src": "5975:362:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 1946, + "id": 1979, "nodeType": "Block", - "src": "6500:520:9", + "src": "6790:520:9", "statements": [ { "expression": { @@ -30520,32 +31125,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1889, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1885, + "id": 1918, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "6521:7:9", + "referencedDeclaration": 1899, + "src": "6811:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 1886, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6521:14:9", + "src": "6811:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30555,31 +31160,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1887, + "id": 1920, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, - "src": "6539:6:9", + "referencedDeclaration": 1902, + "src": "6829:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 1888, + "id": 1921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6539:13:9", + "src": "6829:13:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6521:31:9", + "src": "6811:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30587,14 +31192,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 1890, + "id": 1923, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6560:35:9", + "src": "6850:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -30613,7 +31218,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 1884, + "id": 1917, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -30621,13 +31226,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "6506:7:9", + "src": "6796:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1891, + "id": 1924, "isConstant": false, "isLValue": false, "isPure": false, @@ -30635,16 +31240,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6506:95:9", + "src": "6796:95:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1892, + "id": 1925, "nodeType": "ExpressionStatement", - "src": "6506:95:9" + "src": "6796:95:9" }, { "expression": { @@ -30654,32 +31259,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1898, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1894, + "id": 1927, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "6622:7:9", + "referencedDeclaration": 1899, + "src": "6912:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 1895, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6622:14:9", + "src": "6912:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30689,31 +31294,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1896, + "id": 1929, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "6640:5:9", + "referencedDeclaration": 1905, + "src": "6930:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 1897, + "id": 1930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6640:12:9", + "src": "6930:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6622:30:9", + "src": "6912:30:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30721,14 +31326,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 1899, + "id": 1932, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6660:35:9", + "src": "6950:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -30747,7 +31352,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 1893, + "id": 1926, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -30755,13 +31360,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "6607:7:9", + "src": "6897:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1900, + "id": 1933, "isConstant": false, "isLValue": false, "isPure": false, @@ -30769,31 +31374,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6607:94:9", + "src": "6897:94:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1901, + "id": 1934, "nodeType": "ExpressionStatement", - "src": "6607:94:9" + "src": "6897:94:9" }, { "assignments": [ - 1903 + 1936 ], "declarations": [ { "constant": false, - "id": 1903, + "id": 1936, "mutability": "mutable", "name": "id", - "nameLocation": "6716:2:9", + "nameLocation": "7006:2:9", "nodeType": "VariableDeclaration", - "scope": 1946, - "src": "6708:10:9", + "scope": 1979, + "src": "6998:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30801,10 +31406,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1902, + "id": 1935, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6708:7:9", + "src": "6998:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30813,64 +31418,64 @@ "visibility": "internal" } ], - "id": 1911, + "id": 1944, "initialValue": { "arguments": [ { - "id": 1905, + "id": 1938, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "6740:7:9", + "referencedDeclaration": 1899, + "src": "7030:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, { - "id": 1906, + "id": 1939, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, - "src": "6749:6:9", + "referencedDeclaration": 1902, + "src": "7039:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, { - "id": 1907, + "id": 1940, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "6757:5:9", + "referencedDeclaration": 1905, + "src": "7047:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, { - "id": 1908, + "id": 1941, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1874, - "src": "6764:11:9", + "referencedDeclaration": 1907, + "src": "7054:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1909, + "id": 1942, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "6777:4:9", + "referencedDeclaration": 1909, + "src": "7067:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30900,18 +31505,18 @@ "typeString": "bytes32" } ], - "id": 1904, + "id": 1937, "name": "hashOperationBatch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "6721:18:9", + "referencedDeclaration": 1850, + "src": "7011:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)" } }, - "id": 1910, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, @@ -30919,7 +31524,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6721:61:9", + "src": "7011:61:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30927,30 +31532,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6708:74:9" + "src": "6998:74:9" }, { "expression": { "arguments": [ { - "id": 1913, + "id": 1946, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1903, - "src": "6798:2:9", + "referencedDeclaration": 1936, + "src": "7088:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1914, + "id": 1947, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "6802:5:9", + "referencedDeclaration": 1911, + "src": "7092:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30968,18 +31573,18 @@ "typeString": "uint256" } ], - "id": 1912, + "id": 1945, "name": "_schedule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1980, - "src": "6788:9:9", + "referencedDeclaration": 2013, + "src": "7078:9:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256)" } }, - "id": 1915, + "id": 1948, "isConstant": false, "isLValue": false, "isPure": false, @@ -30987,45 +31592,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6788:20:9", + "src": "7078:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1916, + "id": 1949, "nodeType": "ExpressionStatement", - "src": "6788:20:9" + "src": "7078:20:9" }, { "body": { - "id": 1944, + "id": 1977, "nodeType": "Block", - "src": "6859:157:9", + "src": "7149:157:9", "statements": [ { "eventCall": { "arguments": [ { - "id": 1929, + "id": 1962, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1903, - "src": "6895:2:9", + "referencedDeclaration": 1936, + "src": "7185:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1930, + "id": 1963, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "6907:1:9", + "referencedDeclaration": 1951, + "src": "7197:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31033,25 +31638,25 @@ }, { "baseExpression": { - "id": 1931, + "id": 1964, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "6918:7:9", + "referencedDeclaration": 1899, + "src": "7208:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 1933, + "id": 1966, "indexExpression": { - "id": 1932, + "id": 1965, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "6926:1:9", + "referencedDeclaration": 1951, + "src": "7216:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31062,7 +31667,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6918:10:9", + "src": "7208:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -31070,25 +31675,25 @@ }, { "baseExpression": { - "id": 1934, + "id": 1967, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, - "src": "6938:6:9", + "referencedDeclaration": 1902, + "src": "7228:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 1936, + "id": 1969, "indexExpression": { - "id": 1935, + "id": 1968, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "6945:1:9", + "referencedDeclaration": 1951, + "src": "7235:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31099,7 +31704,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6938:9:9", + "src": "7228:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31107,25 +31712,25 @@ }, { "baseExpression": { - "id": 1937, + "id": 1970, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "6957:5:9", + "referencedDeclaration": 1905, + "src": "7247:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 1939, + "id": 1972, "indexExpression": { - "id": 1938, + "id": 1971, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "6963:1:9", + "referencedDeclaration": 1951, + "src": "7253:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31136,31 +31741,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6957:8:9", + "src": "7247:8:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 1940, + "id": 1973, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1874, - "src": "6975:11:9", + "referencedDeclaration": 1907, + "src": "7265:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1941, + "id": 1974, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "6996:5:9", + "referencedDeclaration": 1911, + "src": "7286:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31198,18 +31803,18 @@ "typeString": "uint256" } ], - "id": 1928, + "id": 1961, "name": "CallScheduled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1449, - "src": "6872:13:9", + "referencedDeclaration": 1454, + "src": "7162:13:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)" } }, - "id": 1942, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": false, @@ -31217,16 +31822,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6872:137:9", + "src": "7162:137:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1943, + "id": 1976, "nodeType": "EmitStatement", - "src": "6867:142:9" + "src": "7157:142:9" } ] }, @@ -31235,18 +31840,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1924, + "id": 1957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1921, + "id": 1954, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "6834:1:9", + "referencedDeclaration": 1951, + "src": "7124:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31256,51 +31861,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1922, + "id": 1955, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1866, - "src": "6838:7:9", + "referencedDeclaration": 1899, + "src": "7128:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 1923, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6838:14:9", + "src": "7128:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6834:18:9", + "src": "7124:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1945, + "id": 1978, "initializationExpression": { "assignments": [ - 1918 + 1951 ], "declarations": [ { "constant": false, - "id": 1918, + "id": 1951, "mutability": "mutable", "name": "i", - "nameLocation": "6827:1:9", + "nameLocation": "7117:1:9", "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "6819:9:9", + "scope": 1978, + "src": "7109:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31308,10 +31913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1917, + "id": 1950, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6819:7:9", + "src": "7109:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31320,17 +31925,17 @@ "visibility": "internal" } ], - "id": 1920, + "id": 1953, "initialValue": { "hexValue": "30", - "id": 1919, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6831:1:9", + "src": "7121:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -31338,11 +31943,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6819:13:9" + "src": "7109:13:9" }, "loopExpression": { "expression": { - "id": 1926, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": false, @@ -31350,14 +31955,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "6854:3:9", + "src": "7144:3:9", "subExpression": { - "id": 1925, + "id": 1958, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1918, - "src": "6856:1:9", + "referencedDeclaration": 1951, + "src": "7146:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31368,70 +31973,70 @@ "typeString": "uint256" } }, - "id": 1927, + "id": 1960, "nodeType": "ExpressionStatement", - "src": "6854:3:9" + "src": "7144:3:9" }, "nodeType": "ForStatement", - "src": "6814:202:9" + "src": "7104:202:9" } ] }, "documentation": { - "id": 1863, + "id": 1896, "nodeType": "StructuredDocumentation", - "src": "6051:227:9", + "src": "6341:227:9", "text": " @dev Schedule an operation containing a batch of transactions.\n Emits one {CallScheduled} event per transaction in the batch.\n Requirements:\n - the caller must have the 'proposer' role." }, "functionSelector": "8f2a0bb0", - "id": 1947, + "id": 1980, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1881, + "id": 1914, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "6485:13:9", + "src": "6775:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1882, + "id": 1915, "kind": "modifierInvocation", "modifierName": { - "id": 1880, + "id": 1913, "name": "onlyRole", "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "6476:8:9" + "src": "6766:8:9" }, "nodeType": "ModifierInvocation", - "src": "6476:23:9" + "src": "6766:23:9" } ], "name": "scheduleBatch", - "nameLocation": "6290:13:9", + "nameLocation": "6580:13:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1879, + "id": 1912, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1866, + "id": 1899, "mutability": "mutable", "name": "targets", - "nameLocation": "6328:7:9", + "nameLocation": "6618:7:9", "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "6309:26:9", + "scope": 1980, + "src": "6599:26:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -31440,19 +32045,19 @@ }, "typeName": { "baseType": { - "id": 1864, + "id": 1897, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6309:7:9", + "src": "6599:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1865, + "id": 1898, "nodeType": "ArrayTypeName", - "src": "6309:9:9", + "src": "6599:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -31462,13 +32067,13 @@ }, { "constant": false, - "id": 1869, + "id": 1902, "mutability": "mutable", "name": "values", - "nameLocation": "6360:6:9", + "nameLocation": "6650:6:9", "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "6341:25:9", + "scope": 1980, + "src": "6631:25:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -31477,18 +32082,18 @@ }, "typeName": { "baseType": { - "id": 1867, + "id": 1900, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6341:7:9", + "src": "6631:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1868, + "id": 1901, "nodeType": "ArrayTypeName", - "src": "6341:9:9", + "src": "6631:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -31498,13 +32103,13 @@ }, { "constant": false, - "id": 1872, + "id": 1905, "mutability": "mutable", "name": "datas", - "nameLocation": "6389:5:9", + "nameLocation": "6679:5:9", "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "6372:22:9", + "scope": 1980, + "src": "6662:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -31513,18 +32118,18 @@ }, "typeName": { "baseType": { - "id": 1870, + "id": 1903, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6372:5:9", + "src": "6662:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, - "id": 1871, + "id": 1904, "nodeType": "ArrayTypeName", - "src": "6372:7:9", + "src": "6662:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" @@ -31534,13 +32139,13 @@ }, { "constant": false, - "id": 1874, + "id": 1907, "mutability": "mutable", "name": "predecessor", - "nameLocation": "6408:11:9", + "nameLocation": "6698:11:9", "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "6400:19:9", + "scope": 1980, + "src": "6690:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31548,10 +32153,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1873, + "id": 1906, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6400:7:9", + "src": "6690:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31561,13 +32166,13 @@ }, { "constant": false, - "id": 1876, + "id": 1909, "mutability": "mutable", "name": "salt", - "nameLocation": "6433:4:9", + "nameLocation": "6723:4:9", "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "6425:12:9", + "scope": 1980, + "src": "6715:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31575,10 +32180,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1875, + "id": 1908, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6425:7:9", + "src": "6715:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31588,13 +32193,13 @@ }, { "constant": false, - "id": 1878, + "id": 1911, "mutability": "mutable", "name": "delay", - "nameLocation": "6451:5:9", + "nameLocation": "6741:5:9", "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "6443:13:9", + "scope": 1980, + "src": "6733:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31602,10 +32207,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1877, + "id": 1910, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6443:7:9", + "src": "6733:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31614,31 +32219,31 @@ "visibility": "internal" } ], - "src": "6303:157:9" + "src": "6593:157:9" }, "returnParameters": { - "id": 1883, + "id": 1916, "nodeType": "ParameterList", "parameters": [], - "src": "6500:0:9" + "src": "6790:0:9" }, - "scope": 2391, - "src": "6281:739:9", + "scope": 2424, + "src": "6571:739:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 1979, + "id": 2012, "nodeType": "Block", - "src": "7168:204:9", + "src": "7458:204:9", "statements": [ { "expression": { "arguments": [ { - "id": 1959, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -31646,16 +32251,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "7182:16:9", + "src": "7472:16:9", "subExpression": { "arguments": [ { - "id": 1957, + "id": 1990, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "7195:2:9", + "referencedDeclaration": 1983, + "src": "7485:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31669,18 +32274,18 @@ "typeString": "bytes32" } ], - "id": 1956, + "id": 1989, "name": "isOperation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "7183:11:9", + "referencedDeclaration": 1675, + "src": "7473:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1958, + "id": 1991, "isConstant": false, "isLValue": false, "isPure": false, @@ -31688,7 +32293,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7183:15:9", + "src": "7473:15:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -31702,14 +32307,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e20616c7265616479207363686564756c6564", - "id": 1960, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7200:47:9", + "src": "7490:47:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_498a98edde27c28694cc7d4941f82dd71ff5085e4a93f35609f504b4979a0e12", "typeString": "literal_string \"BEMultiSigWallet: operation already scheduled\"" @@ -31728,7 +32333,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation already scheduled\"" } ], - "id": 1955, + "id": 1988, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -31736,13 +32341,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "7174:7:9", + "src": "7464:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1961, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, @@ -31750,16 +32355,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7174:74:9", + "src": "7464:74:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1962, + "id": 1995, "nodeType": "ExpressionStatement", - "src": "7174:74:9" + "src": "7464:74:9" }, { "expression": { @@ -31769,18 +32374,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1966, + "id": 1999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1964, + "id": 1997, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1952, - "src": "7262:5:9", + "referencedDeclaration": 1985, + "src": "7552:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31789,18 +32394,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1965, + "id": 1998, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1430, - "src": "7271:8:9", + "referencedDeclaration": 1435, + "src": "7561:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7262:17:9", + "src": "7552:17:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31808,14 +32413,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a20696e73756666696369656e742064656c6179", - "id": 1967, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7281:38:9", + "src": "7571:38:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9c4dfb173f7764cc56b8beafaf67c514b7ff532825adbcaadabf621199a1950a", "typeString": "literal_string \"BEMultiSigWallet: insufficient delay\"" @@ -31834,7 +32439,7 @@ "typeString": "literal_string \"BEMultiSigWallet: insufficient delay\"" } ], - "id": 1963, + "id": 1996, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -31842,13 +32447,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "7254:7:9", + "src": "7544:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1968, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, @@ -31856,45 +32461,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7254:66:9", + "src": "7544:66:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1969, + "id": 2002, "nodeType": "ExpressionStatement", - "src": "7254:66:9" + "src": "7544:66:9" }, { "expression": { - "id": 1977, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1970, + "id": 2003, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "7326:11:9", + "referencedDeclaration": 1427, + "src": "7616:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1972, + "id": 2005, "indexExpression": { - "id": 1971, + "id": 2004, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "7338:2:9", + "referencedDeclaration": 1983, + "src": "7628:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31905,7 +32510,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7326:15:9", + "src": "7616:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31918,32 +32523,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1976, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1973, + "id": 2006, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "7344:5:9", + "src": "7634:5:9", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1974, + "id": 2007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "7344:15:9", + "src": "7634:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31952,61 +32557,61 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 1975, + "id": 2008, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1952, - "src": "7362:5:9", + "referencedDeclaration": 1985, + "src": "7652:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7344:23:9", + "src": "7634:23:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7326:41:9", + "src": "7616:41:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1978, + "id": 2011, "nodeType": "ExpressionStatement", - "src": "7326:41:9" + "src": "7616:41:9" } ] }, "documentation": { - "id": 1948, + "id": 1981, "nodeType": "StructuredDocumentation", - "src": "7024:87:9", + "src": "7314:87:9", "text": " @dev Schedule an operation that is to becomes valid after a given delay." }, - "id": 1980, + "id": 2013, "implemented": true, "kind": "function", "modifiers": [], "name": "_schedule", - "nameLocation": "7123:9:9", + "nameLocation": "7413:9:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1953, + "id": 1986, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1950, + "id": 1983, "mutability": "mutable", "name": "id", - "nameLocation": "7141:2:9", + "nameLocation": "7431:2:9", "nodeType": "VariableDeclaration", - "scope": 1980, - "src": "7133:10:9", + "scope": 2013, + "src": "7423:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32014,10 +32619,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1949, + "id": 1982, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7133:7:9", + "src": "7423:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32027,13 +32632,13 @@ }, { "constant": false, - "id": 1952, + "id": 1985, "mutability": "mutable", "name": "delay", - "nameLocation": "7153:5:9", + "nameLocation": "7443:5:9", "nodeType": "VariableDeclaration", - "scope": 1980, - "src": "7145:13:9", + "scope": 2013, + "src": "7435:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32041,10 +32646,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1951, + "id": 1984, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7145:7:9", + "src": "7435:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32053,25 +32658,25 @@ "visibility": "internal" } ], - "src": "7132:27:9" + "src": "7422:27:9" }, "returnParameters": { - "id": 1954, + "id": 1987, "nodeType": "ParameterList", "parameters": [], - "src": "7168:0:9" + "src": "7458:0:9" }, - "scope": 2391, - "src": "7114:258:9", + "scope": 2424, + "src": "7404:258:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 2005, + "id": 2038, "nodeType": "Block", - "src": "7564:164:9", + "src": "7854:164:9", "statements": [ { "expression": { @@ -32079,12 +32684,12 @@ { "arguments": [ { - "id": 1991, + "id": 2024, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "7604:2:9", + "referencedDeclaration": 2016, + "src": "7894:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32098,18 +32703,18 @@ "typeString": "bytes32" } ], - "id": 1990, + "id": 2023, "name": "isOperationPending", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1657, - "src": "7585:18:9", + "referencedDeclaration": 1690, + "src": "7875:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1992, + "id": 2025, "isConstant": false, "isLValue": false, "isPure": false, @@ -32117,7 +32722,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7585:22:9", + "src": "7875:22:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32126,14 +32731,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e6f742062652063616e63656c6c6564", - "id": 1993, + "id": 2026, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7615:49:9", + "src": "7905:49:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_18f4f64b96974e466ba9fe4c81e77d3a2e7e7ead1ec0709ce9c4a80df6bbe8e2", "typeString": "literal_string \"BEMultiSigWallet: operation cannot be cancelled\"" @@ -32152,7 +32757,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation cannot be cancelled\"" } ], - "id": 1989, + "id": 2022, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -32160,13 +32765,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "7570:7:9", + "src": "7860:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1994, + "id": 2027, "isConstant": false, "isLValue": false, "isPure": false, @@ -32174,20 +32779,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7570:100:9", + "src": "7860:100:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1995, + "id": 2028, "nodeType": "ExpressionStatement", - "src": "7570:100:9" + "src": "7860:100:9" }, { "expression": { - "id": 1999, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": false, @@ -32195,28 +32800,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "7676:22:9", + "src": "7966:22:9", "subExpression": { "baseExpression": { - "id": 1996, + "id": 2029, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "7683:11:9", + "referencedDeclaration": 1427, + "src": "7973:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1998, + "id": 2031, "indexExpression": { - "id": 1997, + "id": 2030, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "7695:2:9", + "referencedDeclaration": 2016, + "src": "7985:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32227,7 +32832,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7683:15:9", + "src": "7973:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32238,20 +32843,20 @@ "typeString": "tuple()" } }, - "id": 2000, + "id": 2033, "nodeType": "ExpressionStatement", - "src": "7676:22:9" + "src": "7966:22:9" }, { "eventCall": { "arguments": [ { - "id": 2002, + "id": 2035, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "7720:2:9", + "referencedDeclaration": 2016, + "src": "8010:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32265,18 +32870,18 @@ "typeString": "bytes32" } ], - "id": 2001, + "id": 2034, "name": "Cancelled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "7710:9:9", + "referencedDeclaration": 1472, + "src": "8000:9:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 2003, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": false, @@ -32284,74 +32889,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7710:13:9", + "src": "8000:13:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2004, + "id": 2037, "nodeType": "EmitStatement", - "src": "7705:18:9" + "src": "7995:18:9" } ] }, "documentation": { - "id": 1981, + "id": 2014, "nodeType": "StructuredDocumentation", - "src": "7376:118:9", + "src": "7666:118:9", "text": " @dev Cancel an operation.\n Requirements:\n - the caller must have the 'proposer' role." }, "functionSelector": "c4d252f5", - "id": 2006, + "id": 2039, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1986, + "id": 2019, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "7549:13:9", + "src": "7839:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1987, + "id": 2020, "kind": "modifierInvocation", "modifierName": { - "id": 1985, + "id": 2018, "name": "onlyRole", "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "7540:8:9" + "src": "7830:8:9" }, "nodeType": "ModifierInvocation", - "src": "7540:23:9" + "src": "7830:23:9" } ], "name": "cancel", - "nameLocation": "7506:6:9", + "nameLocation": "7796:6:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1984, + "id": 2017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1983, + "id": 2016, "mutability": "mutable", "name": "id", - "nameLocation": "7521:2:9", + "nameLocation": "7811:2:9", "nodeType": "VariableDeclaration", - "scope": 2006, - "src": "7513:10:9", + "scope": 2039, + "src": "7803:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32359,10 +32964,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1982, + "id": 2015, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7513:7:9", + "src": "7803:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32371,25 +32976,25 @@ "visibility": "internal" } ], - "src": "7512:12:9" + "src": "7802:12:9" }, "returnParameters": { - "id": 1988, + "id": 2021, "nodeType": "ParameterList", "parameters": [], - "src": "7564:0:9" + "src": "7854:0:9" }, - "scope": 2391, - "src": "7497:231:9", + "scope": 2424, + "src": "7787:231:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "body": { - "id": 2037, + "id": 2070, "nodeType": "Block", - "src": "7955:194:9", + "src": "8244:194:9", "statements": [ { "expression": { @@ -32397,12 +33002,12 @@ { "arguments": [ { - "id": 2017, + "id": 2050, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2009, - "src": "7995:2:9", + "referencedDeclaration": 2042, + "src": "8284:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32416,18 +33021,18 @@ "typeString": "bytes32" } ], - "id": 2016, + "id": 2049, "name": "isOperationPending", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1657, - "src": "7976:18:9", + "referencedDeclaration": 1690, + "src": "8265:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2018, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -32435,7 +33040,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7976:22:9", + "src": "8265:22:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32444,14 +33049,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f74206578697374206f722066696e6973686564", - "id": 2019, + "id": 2052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8006:51:9", + "src": "8295:51:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f189764673a1904d80a5eac6f1e4952021d4400f0665b76222b6d1047bee845d", "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" @@ -32470,7 +33075,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" } ], - "id": 2015, + "id": 2048, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -32478,13 +33083,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "7961:7:9", + "src": "8250:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2020, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": false, @@ -32492,20 +33097,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7961:102:9", + "src": "8250:102:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2021, + "id": 2054, "nodeType": "ExpressionStatement", - "src": "7961:102:9" + "src": "8250:102:9" }, { "expression": { - "id": 2029, + "id": 2062, "isConstant": false, "isLValue": false, "isPure": false, @@ -32513,25 +33118,25 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2022, + "id": 2055, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1428, - "src": "8069:13:9", + "referencedDeclaration": 1433, + "src": "8358:13:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2026, + "id": 2059, "indexExpression": { - "id": 2023, + "id": 2056, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2009, - "src": "8083:2:9", + "referencedDeclaration": 2042, + "src": "8372:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32542,34 +33147,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8069:17:9", + "src": "8358:17:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2027, + "id": 2060, "indexExpression": { "expression": { - "id": 2024, + "id": 2057, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8087:3:9", + "src": "8376:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2025, + "id": 2058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8087:10:9", + "src": "8376:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -32580,7 +33185,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8069:29:9", + "src": "8358:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32590,66 +33195,66 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 2028, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8101:4:9", + "src": "8390:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "8069:36:9", + "src": "8358:36:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2030, + "id": 2063, "nodeType": "ExpressionStatement", - "src": "8069:36:9" + "src": "8358:36:9" }, { "eventCall": { "arguments": [ { "expression": { - "id": 2032, + "id": 2065, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8129:3:9", + "src": "8418:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2033, + "id": 2066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8129:10:9", + "src": "8418:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2034, + "id": 2067, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2009, - "src": "8141:2:9", + "referencedDeclaration": 2042, + "src": "8430:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32667,18 +33272,18 @@ "typeString": "bytes32" } ], - "id": 2031, + "id": 2064, "name": "Confirmation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, - "src": "8116:12:9", + "referencedDeclaration": 1478, + "src": "8405:12:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$", "typeString": "function (address,bytes32)" } }, - "id": 2035, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": false, @@ -32686,354 +33291,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8116:28:9", + "src": "8405:28:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2036, + "id": 2069, "nodeType": "EmitStatement", - "src": "8111:33:9" + "src": "8400:33:9" } ] }, "documentation": { - "id": 2007, + "id": 2040, "nodeType": "StructuredDocumentation", - "src": "7732:131:9", + "src": "8022:131:9", "text": " @dev Allows an executor to confirm a transaction.\n Requirements\n - the caller must have the 'executor' role." }, "functionSelector": "79716e43", - "id": 2038, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 2012, - "name": "EXECUTOR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "7940:13:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 2013, - "kind": "modifierInvocation", - "modifierName": { - "id": 2011, - "name": "onlyRoleOrOpenRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 1622, - "src": "7921:18:9" - }, - "nodeType": "ModifierInvocation", - "src": "7921:33:9" - } - ], - "name": "confirmTransaction", - "nameLocation": "7875:18:9", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2009, - "mutability": "mutable", - "name": "id", - "nameLocation": "7907:2:9", - "nodeType": "VariableDeclaration", - "scope": 2038, - "src": "7899:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2008, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7899:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7893:20:9" - }, - "returnParameters": { - "id": 2014, - "nodeType": "ParameterList", - "parameters": [], - "src": "7955:0:9" - }, - "scope": 2391, - "src": "7866:283:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "8335:92:9", - "statements": [ - { - "body": { - "id": 2065, - "nodeType": "Block", - "src": "8382:41:9", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 2060, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "8409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 2062, - "indexExpression": { - "id": 2061, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "8413:1:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8409:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2059, - "name": "confirmTransaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "8390:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8390:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2064, - "nodeType": "ExpressionStatement", - "src": "8390:26:9" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2052, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "8361:1:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 2053, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "8365:3:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "8365:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8361:14:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2066, - "initializationExpression": { - "assignments": [ - 2049 - ], - "declarations": [ - { - "constant": false, - "id": 2049, - "mutability": "mutable", - "name": "i", - "nameLocation": "8354:1:9", - "nodeType": "VariableDeclaration", - "scope": 2066, - "src": "8346:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2048, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8346:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2051, - "initialValue": { - "hexValue": "30", - "id": 2050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8358:1:9", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8346:13:9" - }, - "loopExpression": { - "expression": { - "id": 2057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "8377:3:9", - "subExpression": { - "id": 2056, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "8379:1:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2058, - "nodeType": "ExpressionStatement", - "src": "8377:3:9" - }, - "nodeType": "ForStatement", - "src": "8341:82:9" - } - ] - }, - "documentation": { - "id": 2039, - "nodeType": "StructuredDocumentation", - "src": "8153:73:9", - "text": " @dev Allows an executor to confirm multiple transactions." - }, - "functionSelector": "59111070", - "id": 2068, + "id": 2071, "implemented": true, "kind": "function", "modifiers": [ @@ -33041,11 +33319,11 @@ "arguments": [ { "id": 2045, - "name": "EXECUTOR_ROLE", + "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "8320:13:9", + "referencedDeclaration": 1417, + "src": "8230:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33058,15 +33336,15 @@ "id": 2044, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", - "referencedDeclaration": 1622, - "src": "8301:18:9" + "referencedDeclaration": 1655, + "src": "8211:18:9" }, "nodeType": "ModifierInvocation", - "src": "8301:33:9" + "src": "8211:32:9" } ], - "name": "confirmTransactionBatch", - "nameLocation": "8238:23:9", + "name": "confirmTransaction", + "nameLocation": "8165:18:9", "nodeType": "FunctionDefinition", "parameters": { "id": 2043, @@ -33076,11 +33354,338 @@ "constant": false, "id": 2042, "mutability": "mutable", - "name": "ids", - "nameLocation": "8286:3:9", + "name": "id", + "nameLocation": "8197:2:9", "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "8267:22:9", + "scope": 2071, + "src": "8189:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2041, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8189:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8183:20:9" + }, + "returnParameters": { + "id": 2047, + "nodeType": "ParameterList", + "parameters": [], + "src": "8244:0:9" + }, + "scope": 2424, + "src": "8156:282:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2100, + "nodeType": "Block", + "src": "8623:92:9", + "statements": [ + { + "body": { + "id": 2098, + "nodeType": "Block", + "src": "8670:41:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 2093, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2075, + "src": "8697:3:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2095, + "indexExpression": { + "id": 2094, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "8701:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8697:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2092, + "name": "confirmTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2071, + "src": "8678:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 2096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8678:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2097, + "nodeType": "ExpressionStatement", + "src": "8678:26:9" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2085, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "8649:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2086, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2075, + "src": "8653:3:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8653:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8649:14:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2099, + "initializationExpression": { + "assignments": [ + 2082 + ], + "declarations": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "i", + "nameLocation": "8642:1:9", + "nodeType": "VariableDeclaration", + "scope": 2099, + "src": "8634:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8634:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2084, + "initialValue": { + "hexValue": "30", + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8646:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8634:13:9" + }, + "loopExpression": { + "expression": { + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "8665:3:9", + "subExpression": { + "id": 2089, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "8667:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2091, + "nodeType": "ExpressionStatement", + "src": "8665:3:9" + }, + "nodeType": "ForStatement", + "src": "8629:82:9" + } + ] + }, + "documentation": { + "id": 2072, + "nodeType": "StructuredDocumentation", + "src": "8442:73:9", + "text": " @dev Allows an executor to confirm multiple transactions." + }, + "functionSelector": "59111070", + "id": 2101, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 2078, + "name": "CONFIRM_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "8609:12:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2079, + "kind": "modifierInvocation", + "modifierName": { + "id": 2077, + "name": "onlyRoleOrOpenRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1655, + "src": "8590:18:9" + }, + "nodeType": "ModifierInvocation", + "src": "8590:32:9" + } + ], + "name": "confirmTransactionBatch", + "nameLocation": "8527:23:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2076, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2075, + "mutability": "mutable", + "name": "ids", + "nameLocation": "8575:3:9", + "nodeType": "VariableDeclaration", + "scope": 2101, + "src": "8556:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -33089,18 +33694,18 @@ }, "typeName": { "baseType": { - "id": 2040, + "id": 2073, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8267:7:9", + "src": "8556:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2041, + "id": 2074, "nodeType": "ArrayTypeName", - "src": "8267:9:9", + "src": "8556:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -33109,25 +33714,25 @@ "visibility": "internal" } ], - "src": "8261:32:9" + "src": "8550:32:9" }, "returnParameters": { - "id": 2047, + "id": 2080, "nodeType": "ParameterList", "parameters": [], - "src": "8335:0:9" + "src": "8623:0:9" }, - "scope": 2391, - "src": "8229:198:9", + "scope": 2424, + "src": "8518:197:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 2099, + "id": 2132, "nodeType": "Block", - "src": "8672:193:9", + "src": "8959:193:9", "statements": [ { "expression": { @@ -33135,12 +33740,12 @@ { "arguments": [ { - "id": 2079, + "id": 2112, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "8712:2:9", + "referencedDeclaration": 2104, + "src": "8999:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33154,18 +33759,18 @@ "typeString": "bytes32" } ], - "id": 2078, + "id": 2111, "name": "isOperationPending", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1657, - "src": "8693:18:9", + "referencedDeclaration": 1690, + "src": "8980:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2080, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": false, @@ -33173,7 +33778,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8693:22:9", + "src": "8980:22:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -33182,14 +33787,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f74206578697374206f722066696e6973686564", - "id": 2081, + "id": 2114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8723:51:9", + "src": "9010:51:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f189764673a1904d80a5eac6f1e4952021d4400f0665b76222b6d1047bee845d", "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" @@ -33208,7 +33813,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" } ], - "id": 2077, + "id": 2110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -33216,13 +33821,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8678:7:9", + "src": "8965:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2082, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": false, @@ -33230,20 +33835,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8678:102:9", + "src": "8965:102:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2083, + "id": 2116, "nodeType": "ExpressionStatement", - "src": "8678:102:9" + "src": "8965:102:9" }, { "expression": { - "id": 2091, + "id": 2124, "isConstant": false, "isLValue": false, "isPure": false, @@ -33251,25 +33856,25 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2084, + "id": 2117, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1428, - "src": "8786:13:9", + "referencedDeclaration": 1433, + "src": "9073:13:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2088, + "id": 2121, "indexExpression": { - "id": 2085, + "id": 2118, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "8800:2:9", + "referencedDeclaration": 2104, + "src": "9087:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33280,34 +33885,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8786:17:9", + "src": "9073:17:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2089, + "id": 2122, "indexExpression": { "expression": { - "id": 2086, + "id": 2119, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8804:3:9", + "src": "9091:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2087, + "id": 2120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8804:10:9", + "src": "9091:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33318,7 +33923,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8786:29:9", + "src": "9073:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33328,66 +33933,66 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 2090, + "id": 2123, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8818:5:9", + "src": "9105:5:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "8786:37:9", + "src": "9073:37:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2092, + "id": 2125, "nodeType": "ExpressionStatement", - "src": "8786:37:9" + "src": "9073:37:9" }, { "eventCall": { "arguments": [ { "expression": { - "id": 2094, + "id": 2127, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "8845:3:9", + "src": "9132:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2095, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "8845:10:9", + "src": "9132:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2096, + "id": 2129, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "8857:2:9", + "referencedDeclaration": 2104, + "src": "9144:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33405,18 +34010,18 @@ "typeString": "bytes32" } ], - "id": 2093, + "id": 2126, "name": "Revocation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "8834:10:9", + "referencedDeclaration": 1484, + "src": "9121:10:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$", "typeString": "function (address,bytes32)" } }, - "id": 2097, + "id": 2130, "isConstant": false, "isLValue": false, "isPure": false, @@ -33424,354 +34029,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8834:26:9", + "src": "9121:26:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2098, + "id": 2131, "nodeType": "EmitStatement", - "src": "8829:31:9" + "src": "9116:31:9" } ] }, "documentation": { - "id": 2069, + "id": 2102, "nodeType": "StructuredDocumentation", - "src": "8431:149:9", + "src": "8719:149:9", "text": " @dev Allows an executor to revoke a confirmation for a transaction.\n Requirements\n - the caller must have the 'executor' role." }, "functionSelector": "f3fc536d", - "id": 2100, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 2074, - "name": "EXECUTOR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "8657:13:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 2075, - "kind": "modifierInvocation", - "modifierName": { - "id": 2073, - "name": "onlyRoleOrOpenRole", - "nodeType": "IdentifierPath", - "referencedDeclaration": 1622, - "src": "8638:18:9" - }, - "nodeType": "ModifierInvocation", - "src": "8638:33:9" - } - ], - "name": "revokeConfirmation", - "nameLocation": "8592:18:9", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2071, - "mutability": "mutable", - "name": "id", - "nameLocation": "8624:2:9", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "8616:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2070, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8616:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "8610:20:9" - }, - "returnParameters": { - "id": 2076, - "nodeType": "ParameterList", - "parameters": [], - "src": "8672:0:9" - }, - "scope": 2391, - "src": "8583:282:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2129, - "nodeType": "Block", - "src": "9068:92:9", - "statements": [ - { - "body": { - "id": 2127, - "nodeType": "Block", - "src": "9115:41:9", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 2122, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "9142:3:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 2124, - "indexExpression": { - "id": 2123, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "9146:1:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9142:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2121, - "name": "revokeConfirmation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "9123:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9123:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2126, - "nodeType": "ExpressionStatement", - "src": "9123:26:9" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2114, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "9094:1:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 2115, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "9098:3:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - }, - "id": 2116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9098:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9094:14:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2128, - "initializationExpression": { - "assignments": [ - 2111 - ], - "declarations": [ - { - "constant": false, - "id": 2111, - "mutability": "mutable", - "name": "i", - "nameLocation": "9087:1:9", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "9079:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9079:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2113, - "initialValue": { - "hexValue": "30", - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9091:1:9", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9079:13:9" - }, - "loopExpression": { - "expression": { - "id": 2119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "9110:3:9", - "subExpression": { - "id": 2118, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "9112:1:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2120, - "nodeType": "ExpressionStatement", - "src": "9110:3:9" - }, - "nodeType": "ForStatement", - "src": "9074:82:9" - } - ] - }, - "documentation": { - "id": 2101, - "nodeType": "StructuredDocumentation", - "src": "8869:90:9", - "text": " @dev Allows an executor to revoke multiple confirmations for a transaction." - }, - "functionSelector": "3b04850e", - "id": 2130, + "id": 2133, "implemented": true, "kind": "function", "modifiers": [ @@ -33779,11 +34057,11 @@ "arguments": [ { "id": 2107, - "name": "EXECUTOR_ROLE", + "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "9053:13:9", + "referencedDeclaration": 1417, + "src": "8945:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33796,15 +34074,15 @@ "id": 2106, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", - "referencedDeclaration": 1622, - "src": "9034:18:9" + "referencedDeclaration": 1655, + "src": "8926:18:9" }, "nodeType": "ModifierInvocation", - "src": "9034:33:9" + "src": "8926:32:9" } ], - "name": "revokeConfirmationBatch", - "nameLocation": "8971:23:9", + "name": "revokeConfirmation", + "nameLocation": "8880:18:9", "nodeType": "FunctionDefinition", "parameters": { "id": 2105, @@ -33814,11 +34092,338 @@ "constant": false, "id": 2104, "mutability": "mutable", - "name": "ids", - "nameLocation": "9019:3:9", + "name": "id", + "nameLocation": "8912:2:9", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "9000:22:9", + "scope": 2133, + "src": "8904:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2103, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8904:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8898:20:9" + }, + "returnParameters": { + "id": 2109, + "nodeType": "ParameterList", + "parameters": [], + "src": "8959:0:9" + }, + "scope": 2424, + "src": "8871:281:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2162, + "nodeType": "Block", + "src": "9354:92:9", + "statements": [ + { + "body": { + "id": 2160, + "nodeType": "Block", + "src": "9401:41:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 2155, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "9428:3:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2157, + "indexExpression": { + "id": 2156, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2144, + "src": "9432:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9428:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2154, + "name": "revokeConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2133, + "src": "9409:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 2158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9409:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2159, + "nodeType": "ExpressionStatement", + "src": "9409:26:9" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2147, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2144, + "src": "9380:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2148, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2137, + "src": "9384:3:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 2149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9384:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9380:14:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2161, + "initializationExpression": { + "assignments": [ + 2144 + ], + "declarations": [ + { + "constant": false, + "id": 2144, + "mutability": "mutable", + "name": "i", + "nameLocation": "9373:1:9", + "nodeType": "VariableDeclaration", + "scope": 2161, + "src": "9365:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9365:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2146, + "initialValue": { + "hexValue": "30", + "id": 2145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9377:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9365:13:9" + }, + "loopExpression": { + "expression": { + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "9396:3:9", + "subExpression": { + "id": 2151, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2144, + "src": "9398:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2153, + "nodeType": "ExpressionStatement", + "src": "9396:3:9" + }, + "nodeType": "ForStatement", + "src": "9360:82:9" + } + ] + }, + "documentation": { + "id": 2134, + "nodeType": "StructuredDocumentation", + "src": "9156:90:9", + "text": " @dev Allows an executor to revoke multiple confirmations for a transaction." + }, + "functionSelector": "3b04850e", + "id": 2163, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 2140, + "name": "CONFIRM_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "9340:12:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2141, + "kind": "modifierInvocation", + "modifierName": { + "id": 2139, + "name": "onlyRoleOrOpenRole", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1655, + "src": "9321:18:9" + }, + "nodeType": "ModifierInvocation", + "src": "9321:32:9" + } + ], + "name": "revokeConfirmationBatch", + "nameLocation": "9258:23:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2137, + "mutability": "mutable", + "name": "ids", + "nameLocation": "9306:3:9", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "9287:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -33827,18 +34432,18 @@ }, "typeName": { "baseType": { - "id": 2102, + "id": 2135, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9000:7:9", + "src": "9287:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2103, + "id": 2136, "nodeType": "ArrayTypeName", - "src": "9000:9:9", + "src": "9287:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -33847,40 +34452,40 @@ "visibility": "internal" } ], - "src": "8994:32:9" + "src": "9281:32:9" }, "returnParameters": { - "id": 2109, + "id": 2142, "nodeType": "ParameterList", "parameters": [], - "src": "9068:0:9" + "src": "9354:0:9" }, - "scope": 2391, - "src": "8962:198:9", + "scope": 2424, + "src": "9249:197:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 2174, + "id": 2207, "nodeType": "Block", - "src": "9551:170:9", + "src": "9837:170:9", "statements": [ { "assignments": [ - 2148 + 2181 ], "declarations": [ { "constant": false, - "id": 2148, + "id": 2181, "mutability": "mutable", "name": "id", - "nameLocation": "9565:2:9", + "nameLocation": "9851:2:9", "nodeType": "VariableDeclaration", - "scope": 2174, - "src": "9557:10:9", + "scope": 2207, + "src": "9843:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33888,10 +34493,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2147, + "id": 2180, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9557:7:9", + "src": "9843:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33900,64 +34505,64 @@ "visibility": "internal" } ], - "id": 2156, + "id": 2189, "initialValue": { "arguments": [ { - "id": 2150, + "id": 2183, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "9584:6:9", + "referencedDeclaration": 2166, + "src": "9870:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2151, + "id": 2184, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2135, - "src": "9592:5:9", + "referencedDeclaration": 2168, + "src": "9878:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2152, + "id": 2185, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "9599:4:9", + "referencedDeclaration": 2170, + "src": "9885:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 2153, + "id": 2186, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2139, - "src": "9605:11:9", + "referencedDeclaration": 2172, + "src": "9891:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2154, + "id": 2187, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2141, - "src": "9618:4:9", + "referencedDeclaration": 2174, + "src": "9904:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33987,18 +34592,18 @@ "typeString": "bytes32" } ], - "id": 2149, + "id": 2182, "name": "hashOperation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1786, - "src": "9570:13:9", + "referencedDeclaration": 1819, + "src": "9856:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)" } }, - "id": 2155, + "id": 2188, "isConstant": false, "isLValue": false, "isPure": false, @@ -34006,7 +34611,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9570:53:9", + "src": "9856:53:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -34014,30 +34619,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9557:66:9" + "src": "9843:66:9" }, { "expression": { "arguments": [ { - "id": 2158, + "id": 2191, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "9641:2:9", + "referencedDeclaration": 2181, + "src": "9927:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2159, + "id": 2192, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2139, - "src": "9645:11:9", + "referencedDeclaration": 2172, + "src": "9931:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34055,18 +34660,18 @@ "typeString": "bytes32" } ], - "id": 2157, + "id": 2190, "name": "_beforeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2297, - "src": "9629:11:9", + "referencedDeclaration": 2330, + "src": "9915:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32) view" } }, - "id": 2160, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, @@ -34074,27 +34679,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9629:28:9", + "src": "9915:28:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2161, + "id": 2194, "nodeType": "ExpressionStatement", - "src": "9629:28:9" + "src": "9915:28:9" }, { "expression": { "arguments": [ { - "id": 2163, + "id": 2196, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "9669:2:9", + "referencedDeclaration": 2181, + "src": "9955:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34102,14 +34707,14 @@ }, { "hexValue": "30", - "id": 2164, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9673:1:9", + "src": "9959:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -34117,36 +34722,36 @@ "value": "0" }, { - "id": 2165, + "id": 2198, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "9676:6:9", + "referencedDeclaration": 2166, + "src": "9962:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2166, + "id": 2199, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2135, - "src": "9684:5:9", + "referencedDeclaration": 2168, + "src": "9970:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2167, + "id": 2200, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "9691:4:9", + "referencedDeclaration": 2170, + "src": "9977:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -34176,18 +34781,18 @@ "typeString": "bytes calldata" } ], - "id": 2162, + "id": 2195, "name": "_call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2354, - "src": "9663:5:9", + "referencedDeclaration": 2387, + "src": "9949:5:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes32,uint256,address,uint256,bytes calldata)" } }, - "id": 2168, + "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, @@ -34195,27 +34800,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9663:33:9", + "src": "9949:33:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2169, + "id": 2202, "nodeType": "ExpressionStatement", - "src": "9663:33:9" + "src": "9949:33:9" }, { "expression": { "arguments": [ { - "id": 2171, + "id": 2204, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "9713:2:9", + "referencedDeclaration": 2181, + "src": "9999:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34229,18 +34834,18 @@ "typeString": "bytes32" } ], - "id": 2170, + "id": 2203, "name": "_afterCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2317, - "src": "9702:10:9", + "referencedDeclaration": 2350, + "src": "9988:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 2172, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": false, @@ -34248,74 +34853,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9702:14:9", + "src": "9988:14:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2173, + "id": 2206, "nodeType": "ExpressionStatement", - "src": "9702:14:9" + "src": "9988:14:9" } ] }, "documentation": { - "id": 2131, + "id": 2164, "nodeType": "StructuredDocumentation", - "src": "9164:199:9", + "src": "9450:199:9", "text": " @dev Execute an (ready) operation containing a single transaction.\n Emits a {CallExecuted} event.\n Requirements:\n - the caller must have the 'executor' role." }, "functionSelector": "134008d3", - "id": 2175, + "id": 2208, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 2144, + "id": 2177, "name": "EXECUTOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, - "src": "9536:13:9", + "src": "9822:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2145, + "id": 2178, "kind": "modifierInvocation", "modifierName": { - "id": 2143, + "id": 2176, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", - "referencedDeclaration": 1622, - "src": "9517:18:9" + "referencedDeclaration": 1655, + "src": "9803:18:9" }, "nodeType": "ModifierInvocation", - "src": "9517:33:9" + "src": "9803:33:9" } ], "name": "execute", - "nameLocation": "9375:7:9", + "nameLocation": "9661:7:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2142, + "id": 2175, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2133, + "id": 2166, "mutability": "mutable", "name": "target", - "nameLocation": "9396:6:9", + "nameLocation": "9682:6:9", "nodeType": "VariableDeclaration", - "scope": 2175, - "src": "9388:14:9", + "scope": 2208, + "src": "9674:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34323,10 +34928,10 @@ "typeString": "address" }, "typeName": { - "id": 2132, + "id": 2165, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9388:7:9", + "src": "9674:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -34337,13 +34942,13 @@ }, { "constant": false, - "id": 2135, + "id": 2168, "mutability": "mutable", "name": "value", - "nameLocation": "9416:5:9", + "nameLocation": "9702:5:9", "nodeType": "VariableDeclaration", - "scope": 2175, - "src": "9408:13:9", + "scope": 2208, + "src": "9694:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34351,10 +34956,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2134, + "id": 2167, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9408:7:9", + "src": "9694:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34364,13 +34969,13 @@ }, { "constant": false, - "id": 2137, + "id": 2170, "mutability": "mutable", "name": "data", - "nameLocation": "9442:4:9", + "nameLocation": "9728:4:9", "nodeType": "VariableDeclaration", - "scope": 2175, - "src": "9427:19:9", + "scope": 2208, + "src": "9713:19:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -34378,10 +34983,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2136, + "id": 2169, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9427:5:9", + "src": "9713:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -34391,13 +34996,13 @@ }, { "constant": false, - "id": 2139, + "id": 2172, "mutability": "mutable", "name": "predecessor", - "nameLocation": "9460:11:9", + "nameLocation": "9746:11:9", "nodeType": "VariableDeclaration", - "scope": 2175, - "src": "9452:19:9", + "scope": 2208, + "src": "9738:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34405,10 +35010,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2138, + "id": 2171, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9452:7:9", + "src": "9738:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34418,13 +35023,13 @@ }, { "constant": false, - "id": 2141, + "id": 2174, "mutability": "mutable", "name": "salt", - "nameLocation": "9485:4:9", + "nameLocation": "9771:4:9", "nodeType": "VariableDeclaration", - "scope": 2175, - "src": "9477:12:9", + "scope": 2208, + "src": "9763:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34432,10 +35037,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2140, + "id": 2173, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9477:7:9", + "src": "9763:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34444,25 +35049,25 @@ "visibility": "internal" } ], - "src": "9382:111:9" + "src": "9668:111:9" }, "returnParameters": { - "id": 2146, + "id": 2179, "nodeType": "ParameterList", "parameters": [], - "src": "9551:0:9" + "src": "9837:0:9" }, - "scope": 2391, - "src": "9366:355:9", + "scope": 2424, + "src": "9652:355:9", "stateMutability": "payable", "virtual": true, "visibility": "public" }, { "body": { - "id": 2259, + "id": 2292, "nodeType": "Block", - "src": "10178:451:9", + "src": "10464:451:9", "statements": [ { "expression": { @@ -34472,32 +35077,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2200, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2196, + "id": 2229, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "10199:7:9", + "referencedDeclaration": 2212, + "src": "10485:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2197, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10199:14:9", + "src": "10485:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34507,31 +35112,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 2198, + "id": 2231, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "10217:6:9", + "referencedDeclaration": 2215, + "src": "10503:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2199, + "id": 2232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10217:13:9", + "src": "10503:13:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10199:31:9", + "src": "10485:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34539,14 +35144,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 2201, + "id": 2234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10238:35:9", + "src": "10524:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -34565,7 +35170,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 2195, + "id": 2228, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -34573,13 +35178,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10184:7:9", + "src": "10470:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2202, + "id": 2235, "isConstant": false, "isLValue": false, "isPure": false, @@ -34587,16 +35192,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10184:95:9", + "src": "10470:95:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2203, + "id": 2236, "nodeType": "ExpressionStatement", - "src": "10184:95:9" + "src": "10470:95:9" }, { "expression": { @@ -34606,32 +35211,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2209, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2205, + "id": 2238, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "10300:7:9", + "referencedDeclaration": 2212, + "src": "10586:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2206, + "id": 2239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10300:14:9", + "src": "10586:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34641,31 +35246,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 2207, + "id": 2240, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2185, - "src": "10318:5:9", + "referencedDeclaration": 2218, + "src": "10604:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 2208, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10318:12:9", + "src": "10604:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10300:30:9", + "src": "10586:30:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34673,14 +35278,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 2210, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10338:35:9", + "src": "10624:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -34699,7 +35304,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 2204, + "id": 2237, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -34707,13 +35312,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10285:7:9", + "src": "10571:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2211, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -34721,31 +35326,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10285:94:9", + "src": "10571:94:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2212, + "id": 2245, "nodeType": "ExpressionStatement", - "src": "10285:94:9" + "src": "10571:94:9" }, { "assignments": [ - 2214 + 2247 ], "declarations": [ { "constant": false, - "id": 2214, + "id": 2247, "mutability": "mutable", "name": "id", - "nameLocation": "10394:2:9", + "nameLocation": "10680:2:9", "nodeType": "VariableDeclaration", - "scope": 2259, - "src": "10386:10:9", + "scope": 2292, + "src": "10672:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34753,10 +35358,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2213, + "id": 2246, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10386:7:9", + "src": "10672:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34765,64 +35370,64 @@ "visibility": "internal" } ], - "id": 2222, + "id": 2255, "initialValue": { "arguments": [ { - "id": 2216, + "id": 2249, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "10418:7:9", + "referencedDeclaration": 2212, + "src": "10704:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, { - "id": 2217, + "id": 2250, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "10427:6:9", + "referencedDeclaration": 2215, + "src": "10713:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, { - "id": 2218, + "id": 2251, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2185, - "src": "10435:5:9", + "referencedDeclaration": 2218, + "src": "10721:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, { - "id": 2219, + "id": 2252, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "10442:11:9", + "referencedDeclaration": 2220, + "src": "10728:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2220, + "id": 2253, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "10455:4:9", + "referencedDeclaration": 2222, + "src": "10741:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34852,18 +35457,18 @@ "typeString": "bytes32" } ], - "id": 2215, + "id": 2248, "name": "hashOperationBatch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "10399:18:9", + "referencedDeclaration": 1850, + "src": "10685:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)" } }, - "id": 2221, + "id": 2254, "isConstant": false, "isLValue": false, "isPure": false, @@ -34871,7 +35476,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10399:61:9", + "src": "10685:61:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -34879,30 +35484,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10386:74:9" + "src": "10672:74:9" }, { "expression": { "arguments": [ { - "id": 2224, + "id": 2257, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2214, - "src": "10478:2:9", + "referencedDeclaration": 2247, + "src": "10764:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2225, + "id": 2258, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2187, - "src": "10482:11:9", + "referencedDeclaration": 2220, + "src": "10768:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34920,18 +35525,18 @@ "typeString": "bytes32" } ], - "id": 2223, + "id": 2256, "name": "_beforeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2297, - "src": "10466:11:9", + "referencedDeclaration": 2330, + "src": "10752:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32) view" } }, - "id": 2226, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, @@ -34939,45 +35544,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10466:28:9", + "src": "10752:28:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2227, + "id": 2260, "nodeType": "ExpressionStatement", - "src": "10466:28:9" + "src": "10752:28:9" }, { "body": { - "id": 2253, + "id": 2286, "nodeType": "Block", - "src": "10545:60:9", + "src": "10831:60:9", "statements": [ { "expression": { "arguments": [ { - "id": 2240, + "id": 2273, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2214, - "src": "10559:2:9", + "referencedDeclaration": 2247, + "src": "10845:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2241, + "id": 2274, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "10563:1:9", + "referencedDeclaration": 2262, + "src": "10849:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34985,25 +35590,25 @@ }, { "baseExpression": { - "id": 2242, + "id": 2275, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "10566:7:9", + "referencedDeclaration": 2212, + "src": "10852:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2244, + "id": 2277, "indexExpression": { - "id": 2243, + "id": 2276, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "10574:1:9", + "referencedDeclaration": 2262, + "src": "10860:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35014,7 +35619,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10566:10:9", + "src": "10852:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -35022,25 +35627,25 @@ }, { "baseExpression": { - "id": 2245, + "id": 2278, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "10578:6:9", + "referencedDeclaration": 2215, + "src": "10864:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2247, + "id": 2280, "indexExpression": { - "id": 2246, + "id": 2279, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "10585:1:9", + "referencedDeclaration": 2262, + "src": "10871:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35051,7 +35656,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10578:9:9", + "src": "10864:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35059,25 +35664,25 @@ }, { "baseExpression": { - "id": 2248, + "id": 2281, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2185, - "src": "10589:5:9", + "referencedDeclaration": 2218, + "src": "10875:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 2250, + "id": 2283, "indexExpression": { - "id": 2249, + "id": 2282, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "10595:1:9", + "referencedDeclaration": 2262, + "src": "10881:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35088,7 +35693,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10589:8:9", + "src": "10875:8:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -35118,18 +35723,18 @@ "typeString": "bytes calldata" } ], - "id": 2239, + "id": 2272, "name": "_call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2354, - "src": "10553:5:9", + "referencedDeclaration": 2387, + "src": "10839:5:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes32,uint256,address,uint256,bytes calldata)" } }, - "id": 2251, + "id": 2284, "isConstant": false, "isLValue": false, "isPure": false, @@ -35137,16 +35742,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10553:45:9", + "src": "10839:45:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2252, + "id": 2285, "nodeType": "ExpressionStatement", - "src": "10553:45:9" + "src": "10839:45:9" } ] }, @@ -35155,18 +35760,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2235, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2232, + "id": 2265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "10520:1:9", + "referencedDeclaration": 2262, + "src": "10806:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35176,51 +35781,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2233, + "id": 2266, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "10524:7:9", + "referencedDeclaration": 2212, + "src": "10810:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2234, + "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10524:14:9", + "src": "10810:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10520:18:9", + "src": "10806:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2254, + "id": 2287, "initializationExpression": { "assignments": [ - 2229 + 2262 ], "declarations": [ { "constant": false, - "id": 2229, + "id": 2262, "mutability": "mutable", "name": "i", - "nameLocation": "10513:1:9", + "nameLocation": "10799:1:9", "nodeType": "VariableDeclaration", - "scope": 2254, - "src": "10505:9:9", + "scope": 2287, + "src": "10791:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35228,10 +35833,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2228, + "id": 2261, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10505:7:9", + "src": "10791:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35240,17 +35845,17 @@ "visibility": "internal" } ], - "id": 2231, + "id": 2264, "initialValue": { "hexValue": "30", - "id": 2230, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10517:1:9", + "src": "10803:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -35258,11 +35863,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10505:13:9" + "src": "10791:13:9" }, "loopExpression": { "expression": { - "id": 2237, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": false, @@ -35270,14 +35875,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "10540:3:9", + "src": "10826:3:9", "subExpression": { - "id": 2236, + "id": 2269, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2229, - "src": "10542:1:9", + "referencedDeclaration": 2262, + "src": "10828:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35288,23 +35893,23 @@ "typeString": "uint256" } }, - "id": 2238, + "id": 2271, "nodeType": "ExpressionStatement", - "src": "10540:3:9" + "src": "10826:3:9" }, "nodeType": "ForStatement", - "src": "10500:105:9" + "src": "10786:105:9" }, { "expression": { "arguments": [ { - "id": 2256, + "id": 2289, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2214, - "src": "10621:2:9", + "referencedDeclaration": 2247, + "src": "10907:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35318,18 +35923,18 @@ "typeString": "bytes32" } ], - "id": 2255, + "id": 2288, "name": "_afterCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2317, - "src": "10610:10:9", + "referencedDeclaration": 2350, + "src": "10896:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 2257, + "id": 2290, "isConstant": false, "isLValue": false, "isPure": false, @@ -35337,74 +35942,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10610:14:9", + "src": "10896:14:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2258, + "id": 2291, "nodeType": "ExpressionStatement", - "src": "10610:14:9" + "src": "10896:14:9" } ] }, "documentation": { - "id": 2176, + "id": 2209, "nodeType": "StructuredDocumentation", - "src": "9725:233:9", + "src": "10011:233:9", "text": " @dev Execute an (ready) operation containing a batch of transactions.\n Emits one {CallExecuted} event per transaction in the batch.\n Requirements:\n - the caller must have the 'executor' role." }, "functionSelector": "e38335e5", - "id": 2260, + "id": 2293, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 2192, + "id": 2225, "name": "EXECUTOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, - "src": "10163:13:9", + "src": "10449:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2193, + "id": 2226, "kind": "modifierInvocation", "modifierName": { - "id": 2191, + "id": 2224, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", - "referencedDeclaration": 1622, - "src": "10144:18:9" + "referencedDeclaration": 1655, + "src": "10430:18:9" }, "nodeType": "ModifierInvocation", - "src": "10144:33:9" + "src": "10430:33:9" } ], "name": "executeBatch", - "nameLocation": "9970:12:9", + "nameLocation": "10256:12:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2190, + "id": 2223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2179, + "id": 2212, "mutability": "mutable", "name": "targets", - "nameLocation": "10007:7:9", + "nameLocation": "10293:7:9", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "9988:26:9", + "scope": 2293, + "src": "10274:26:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -35413,19 +36018,19 @@ }, "typeName": { "baseType": { - "id": 2177, + "id": 2210, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9988:7:9", + "src": "10274:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2178, + "id": 2211, "nodeType": "ArrayTypeName", - "src": "9988:9:9", + "src": "10274:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -35435,13 +36040,13 @@ }, { "constant": false, - "id": 2182, + "id": 2215, "mutability": "mutable", "name": "values", - "nameLocation": "10039:6:9", + "nameLocation": "10325:6:9", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "10020:25:9", + "scope": 2293, + "src": "10306:25:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -35450,18 +36055,18 @@ }, "typeName": { "baseType": { - "id": 2180, + "id": 2213, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10020:7:9", + "src": "10306:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2181, + "id": 2214, "nodeType": "ArrayTypeName", - "src": "10020:9:9", + "src": "10306:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -35471,13 +36076,13 @@ }, { "constant": false, - "id": 2185, + "id": 2218, "mutability": "mutable", "name": "datas", - "nameLocation": "10068:5:9", + "nameLocation": "10354:5:9", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "10051:22:9", + "scope": 2293, + "src": "10337:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -35486,18 +36091,18 @@ }, "typeName": { "baseType": { - "id": 2183, + "id": 2216, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10051:5:9", + "src": "10337:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, - "id": 2184, + "id": 2217, "nodeType": "ArrayTypeName", - "src": "10051:7:9", + "src": "10337:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" @@ -35507,13 +36112,13 @@ }, { "constant": false, - "id": 2187, + "id": 2220, "mutability": "mutable", "name": "predecessor", - "nameLocation": "10087:11:9", + "nameLocation": "10373:11:9", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "10079:19:9", + "scope": 2293, + "src": "10365:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35521,10 +36126,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2186, + "id": 2219, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10079:7:9", + "src": "10365:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35534,13 +36139,13 @@ }, { "constant": false, - "id": 2189, + "id": 2222, "mutability": "mutable", "name": "salt", - "nameLocation": "10112:4:9", + "nameLocation": "10398:4:9", "nodeType": "VariableDeclaration", - "scope": 2260, - "src": "10104:12:9", + "scope": 2293, + "src": "10390:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35548,10 +36153,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2188, + "id": 2221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10104:7:9", + "src": "10390:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35560,25 +36165,25 @@ "visibility": "internal" } ], - "src": "9982:138:9" + "src": "10268:138:9" }, "returnParameters": { - "id": 2194, + "id": 2227, "nodeType": "ParameterList", "parameters": [], - "src": "10178:0:9" + "src": "10464:0:9" }, - "scope": 2391, - "src": "9961:668:9", + "scope": 2424, + "src": "10247:668:9", "stateMutability": "payable", "virtual": true, "visibility": "public" }, { "body": { - "id": 2296, + "id": 2329, "nodeType": "Block", - "src": "10771:326:9", + "src": "11057:326:9", "statements": [ { "expression": { @@ -35586,12 +36191,12 @@ { "arguments": [ { - "id": 2270, + "id": 2303, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2263, - "src": "10802:2:9", + "referencedDeclaration": 2296, + "src": "11088:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35605,18 +36210,18 @@ "typeString": "bytes32" } ], - "id": 2269, + "id": 2302, "name": "isOperationReady", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "10785:16:9", + "referencedDeclaration": 1763, + "src": "11071:16:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2271, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": false, @@ -35624,7 +36229,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10785:20:9", + "src": "11071:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -35633,14 +36238,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e6f74207265616479", - "id": 2272, + "id": 2305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10807:42:9", + "src": "11093:42:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3071306add2bfff75b9ab79068a1537f4356af9ed062959388101e0b120a034f", "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" @@ -35659,7 +36264,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" } ], - "id": 2268, + "id": 2301, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -35667,13 +36272,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10777:7:9", + "src": "11063:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2273, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": false, @@ -35681,16 +36286,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10777:73:9", + "src": "11063:73:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2274, + "id": 2307, "nodeType": "ExpressionStatement", - "src": "10777:73:9" + "src": "11063:73:9" }, { "expression": { @@ -35698,12 +36303,12 @@ { "arguments": [ { - "id": 2277, + "id": 2310, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2263, - "src": "10883:2:9", + "referencedDeclaration": 2296, + "src": "11169:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35717,18 +36322,18 @@ "typeString": "bytes32" } ], - "id": 2276, + "id": 2309, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1706, - "src": "10871:11:9", + "referencedDeclaration": 1739, + "src": "11157:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2278, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, @@ -35736,7 +36341,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10871:15:9", + "src": "11157:15:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -35745,14 +36350,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f7420726561636820726571756972656420636f6e6669726d6174696f6e73", - "id": 2279, + "id": 2312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10894:62:9", + "src": "11180:62:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_26f3351a4289a44b9dc71972f9cd6f45d47bd0c7add4c9d1015c299b64c9cdbe", "typeString": "literal_string \"BEMultiSigWallet: operation not reach required confirmations\"" @@ -35771,7 +36376,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation not reach required confirmations\"" } ], - "id": 2275, + "id": 2308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -35779,13 +36384,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10856:7:9", + "src": "11142:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2280, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -35793,16 +36398,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10856:106:9", + "src": "11142:106:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2281, + "id": 2314, "nodeType": "ExpressionStatement", - "src": "10856:106:9" + "src": "11142:106:9" }, { "expression": { @@ -35812,7 +36417,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2292, + "id": 2325, "isConstant": false, "isLValue": false, "isPure": false, @@ -35822,18 +36427,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2288, + "id": 2321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2283, + "id": 2316, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "10983:11:9", + "referencedDeclaration": 2298, + "src": "11269:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35845,14 +36450,14 @@ "arguments": [ { "hexValue": "30", - "id": 2286, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11006:1:9", + "src": "11292:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -35867,26 +36472,26 @@ "typeString": "int_const 0" } ], - "id": 2285, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10998:7:9", + "src": "11284:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2284, + "id": 2317, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10998:7:9", + "src": "11284:7:9", "typeDescriptions": {} } }, - "id": 2287, + "id": 2320, "isConstant": false, "isLValue": false, "isPure": true, @@ -35894,14 +36499,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10998:10:9", + "src": "11284:10:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "10983:25:9", + "src": "11269:25:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35912,12 +36517,12 @@ "rightExpression": { "arguments": [ { - "id": 2290, + "id": 2323, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "11028:11:9", + "referencedDeclaration": 2298, + "src": "11314:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35931,18 +36536,18 @@ "typeString": "bytes32" } ], - "id": 2289, + "id": 2322, "name": "isOperationDone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1745, - "src": "11012:15:9", + "referencedDeclaration": 1778, + "src": "11298:15:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2291, + "id": 2324, "isConstant": false, "isLValue": false, "isPure": false, @@ -35950,14 +36555,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11012:28:9", + "src": "11298:28:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "10983:57:9", + "src": "11269:57:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35965,14 +36570,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206d697373696e6720646570656e64656e6379", - "id": 2293, + "id": 2326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11048:38:9", + "src": "11334:38:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd941925c974bb4b37fc449c3636956979b5143840e3dd79fa264fd005e44275", "typeString": "literal_string \"BEMultiSigWallet: missing dependency\"" @@ -35991,7 +36596,7 @@ "typeString": "literal_string \"BEMultiSigWallet: missing dependency\"" } ], - "id": 2282, + "id": 2315, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -35999,13 +36604,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10968:7:9", + "src": "11254:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2294, + "id": 2327, "isConstant": false, "isLValue": false, "isPure": false, @@ -36013,45 +36618,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10968:124:9", + "src": "11254:124:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2295, + "id": 2328, "nodeType": "ExpressionStatement", - "src": "10968:124:9" + "src": "11254:124:9" } ] }, "documentation": { - "id": 2261, + "id": 2294, "nodeType": "StructuredDocumentation", - "src": "10633:68:9", + "src": "10919:68:9", "text": " @dev Checks before execution of an operation's calls." }, - "id": 2297, + "id": 2330, "implemented": true, "kind": "function", "modifiers": [], "name": "_beforeCall", - "nameLocation": "10713:11:9", + "nameLocation": "10999:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2266, + "id": 2299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2263, + "id": 2296, "mutability": "mutable", "name": "id", - "nameLocation": "10733:2:9", + "nameLocation": "11019:2:9", "nodeType": "VariableDeclaration", - "scope": 2297, - "src": "10725:10:9", + "scope": 2330, + "src": "11011:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36059,10 +36664,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2262, + "id": 2295, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10725:7:9", + "src": "11011:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -36072,13 +36677,13 @@ }, { "constant": false, - "id": 2265, + "id": 2298, "mutability": "mutable", "name": "predecessor", - "nameLocation": "10745:11:9", + "nameLocation": "11031:11:9", "nodeType": "VariableDeclaration", - "scope": 2297, - "src": "10737:19:9", + "scope": 2330, + "src": "11023:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36086,10 +36691,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2264, + "id": 2297, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10737:7:9", + "src": "11023:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -36098,25 +36703,25 @@ "visibility": "internal" } ], - "src": "10724:33:9" + "src": "11010:33:9" }, "returnParameters": { - "id": 2267, + "id": 2300, "nodeType": "ParameterList", "parameters": [], - "src": "10771:0:9" + "src": "11057:0:9" }, - "scope": 2391, - "src": "10704:393:9", + "scope": 2424, + "src": "10990:393:9", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 2316, + "id": 2349, "nodeType": "Block", - "src": "11211:123:9", + "src": "11497:123:9", "statements": [ { "expression": { @@ -36124,12 +36729,12 @@ { "arguments": [ { - "id": 2305, + "id": 2338, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "11242:2:9", + "referencedDeclaration": 2333, + "src": "11528:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -36143,18 +36748,18 @@ "typeString": "bytes32" } ], - "id": 2304, + "id": 2337, "name": "isOperationReady", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "11225:16:9", + "referencedDeclaration": 1763, + "src": "11511:16:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2306, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": false, @@ -36162,7 +36767,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11225:20:9", + "src": "11511:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -36171,14 +36776,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e6f74207265616479", - "id": 2307, + "id": 2340, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11247:42:9", + "src": "11533:42:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3071306add2bfff75b9ab79068a1537f4356af9ed062959388101e0b120a034f", "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" @@ -36197,7 +36802,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" } ], - "id": 2303, + "id": 2336, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -36205,13 +36810,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "11217:7:9", + "src": "11503:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2308, + "id": 2341, "isConstant": false, "isLValue": false, "isPure": false, @@ -36219,45 +36824,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11217:73:9", + "src": "11503:73:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2309, + "id": 2342, "nodeType": "ExpressionStatement", - "src": "11217:73:9" + "src": "11503:73:9" }, { "expression": { - "id": 2314, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2310, + "id": 2343, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1422, - "src": "11296:11:9", + "referencedDeclaration": 1427, + "src": "11582:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2312, + "id": 2345, "indexExpression": { - "id": 2311, + "id": 2344, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "11308:2:9", + "referencedDeclaration": 2333, + "src": "11594:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -36268,7 +36873,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11296:15:9", + "src": "11582:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36277,55 +36882,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2313, + "id": 2346, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1418, - "src": "11314:15:9", + "referencedDeclaration": 1423, + "src": "11600:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11296:33:9", + "src": "11582:33:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2315, + "id": 2348, "nodeType": "ExpressionStatement", - "src": "11296:33:9" + "src": "11582:33:9" } ] }, "documentation": { - "id": 2298, + "id": 2331, "nodeType": "StructuredDocumentation", - "src": "11101:67:9", + "src": "11387:67:9", "text": " @dev Checks after execution of an operation's calls." }, - "id": 2317, + "id": 2350, "implemented": true, "kind": "function", "modifiers": [], "name": "_afterCall", - "nameLocation": "11180:10:9", + "nameLocation": "11466:10:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2301, + "id": 2334, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2300, + "id": 2333, "mutability": "mutable", "name": "id", - "nameLocation": "11199:2:9", + "nameLocation": "11485:2:9", "nodeType": "VariableDeclaration", - "scope": 2317, - "src": "11191:10:9", + "scope": 2350, + "src": "11477:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36333,10 +36938,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2299, + "id": 2332, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11191:7:9", + "src": "11477:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -36345,41 +36950,41 @@ "visibility": "internal" } ], - "src": "11190:12:9" + "src": "11476:12:9" }, "returnParameters": { - "id": 2302, + "id": 2335, "nodeType": "ParameterList", "parameters": [], - "src": "11211:0:9" + "src": "11497:0:9" }, - "scope": 2391, - "src": "11171:163:9", + "scope": 2424, + "src": "11457:163:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 2353, + "id": 2386, "nodeType": "Block", - "src": "11555:192:9", + "src": "11841:192:9", "statements": [ { "assignments": [ - 2332, + 2365, null ], "declarations": [ { "constant": false, - "id": 2332, + "id": 2365, "mutability": "mutable", "name": "success", - "nameLocation": "11567:7:9", + "nameLocation": "11853:7:9", "nodeType": "VariableDeclaration", - "scope": 2353, - "src": "11562:12:9", + "scope": 2386, + "src": "11848:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36387,10 +36992,10 @@ "typeString": "bool" }, "typeName": { - "id": 2331, + "id": 2364, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11562:4:9", + "src": "11848:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36400,16 +37005,16 @@ }, null ], - "id": 2339, + "id": 2372, "initialValue": { "arguments": [ { - "id": 2337, + "id": 2370, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2328, - "src": "11606:4:9", + "referencedDeclaration": 2361, + "src": "11892:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -36431,31 +37036,31 @@ } ], "expression": { - "id": 2333, + "id": 2366, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11580:6:9", + "referencedDeclaration": 2357, + "src": "11866:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2334, + "id": 2367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", - "src": "11580:11:9", + "src": "11866:11:9", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 2336, + "id": 2369, "isConstant": false, "isLValue": false, "isPure": false, @@ -36466,25 +37071,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 2335, + "id": 2368, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "11599:5:9", + "referencedDeclaration": 2359, + "src": "11885:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "11580:25:9", + "src": "11866:25:9", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 2338, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": false, @@ -36492,7 +37097,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11580:31:9", + "src": "11866:31:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -36500,18 +37105,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "11561:50:9" + "src": "11847:50:9" }, { "expression": { "arguments": [ { - "id": 2341, + "id": 2374, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2332, - "src": "11625:7:9", + "referencedDeclaration": 2365, + "src": "11911:7:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36519,14 +37124,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a20756e6465726c79696e67207472616e73616374696f6e207265766572746564", - "id": 2342, + "id": 2375, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11634:51:9", + "src": "11920:51:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4887496109bd7042bc943a0ba0978efb71ff89756cc68bec9bd24ffa06316a33", "typeString": "literal_string \"BEMultiSigWallet: underlying transaction reverted\"" @@ -36545,7 +37150,7 @@ "typeString": "literal_string \"BEMultiSigWallet: underlying transaction reverted\"" } ], - "id": 2340, + "id": 2373, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -36553,13 +37158,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "11617:7:9", + "src": "11903:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2343, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -36567,75 +37172,75 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11617:69:9", + "src": "11903:69:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2344, + "id": 2377, "nodeType": "ExpressionStatement", - "src": "11617:69:9" + "src": "11903:69:9" }, { "eventCall": { "arguments": [ { - "id": 2346, + "id": 2379, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2320, - "src": "11711:2:9", + "referencedDeclaration": 2353, + "src": "11997:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2347, + "id": 2380, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2322, - "src": "11715:5:9", + "referencedDeclaration": 2355, + "src": "12001:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2348, + "id": 2381, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "11722:6:9", + "referencedDeclaration": 2357, + "src": "12008:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2349, + "id": 2382, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "11730:5:9", + "referencedDeclaration": 2359, + "src": "12016:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2350, + "id": 2383, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2328, - "src": "11737:4:9", + "referencedDeclaration": 2361, + "src": "12023:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -36665,18 +37270,18 @@ "typeString": "bytes calldata" } ], - "id": 2345, + "id": 2378, "name": "CallExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "11698:12:9", + "referencedDeclaration": 1467, + "src": "11984:12:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,uint256,address,uint256,bytes memory)" } }, - "id": 2351, + "id": 2384, "isConstant": false, "isLValue": false, "isPure": false, @@ -36684,45 +37289,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11698:44:9", + "src": "11984:44:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2352, + "id": 2385, "nodeType": "EmitStatement", - "src": "11693:49:9" + "src": "11979:49:9" } ] }, "documentation": { - "id": 2318, + "id": 2351, "nodeType": "StructuredDocumentation", - "src": "11338:88:9", + "src": "11624:88:9", "text": " @dev Execute an operation's call.\n Emits a {CallExecuted} event." }, - "id": 2354, + "id": 2387, "implemented": true, "kind": "function", "modifiers": [], "name": "_call", - "nameLocation": "11438:5:9", + "nameLocation": "11724:5:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2329, + "id": 2362, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2320, + "id": 2353, "mutability": "mutable", "name": "id", - "nameLocation": "11457:2:9", + "nameLocation": "11743:2:9", "nodeType": "VariableDeclaration", - "scope": 2354, - "src": "11449:10:9", + "scope": 2387, + "src": "11735:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36730,10 +37335,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2319, + "id": 2352, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11449:7:9", + "src": "11735:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -36743,13 +37348,13 @@ }, { "constant": false, - "id": 2322, + "id": 2355, "mutability": "mutable", "name": "index", - "nameLocation": "11473:5:9", + "nameLocation": "11759:5:9", "nodeType": "VariableDeclaration", - "scope": 2354, - "src": "11465:13:9", + "scope": 2387, + "src": "11751:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36757,10 +37362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2321, + "id": 2354, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11465:7:9", + "src": "11751:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36770,13 +37375,13 @@ }, { "constant": false, - "id": 2324, + "id": 2357, "mutability": "mutable", "name": "target", - "nameLocation": "11492:6:9", + "nameLocation": "11778:6:9", "nodeType": "VariableDeclaration", - "scope": 2354, - "src": "11484:14:9", + "scope": 2387, + "src": "11770:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36784,10 +37389,10 @@ "typeString": "address" }, "typeName": { - "id": 2323, + "id": 2356, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11484:7:9", + "src": "11770:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -36798,13 +37403,13 @@ }, { "constant": false, - "id": 2326, + "id": 2359, "mutability": "mutable", "name": "value", - "nameLocation": "11512:5:9", + "nameLocation": "11798:5:9", "nodeType": "VariableDeclaration", - "scope": 2354, - "src": "11504:13:9", + "scope": 2387, + "src": "11790:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36812,10 +37417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2325, + "id": 2358, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11504:7:9", + "src": "11790:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36825,13 +37430,13 @@ }, { "constant": false, - "id": 2328, + "id": 2361, "mutability": "mutable", "name": "data", - "nameLocation": "11538:4:9", + "nameLocation": "11824:4:9", "nodeType": "VariableDeclaration", - "scope": 2354, - "src": "11523:19:9", + "scope": 2387, + "src": "11809:19:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -36839,10 +37444,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2327, + "id": 2360, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11523:5:9", + "src": "11809:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -36851,48 +37456,48 @@ "visibility": "internal" } ], - "src": "11443:103:9" + "src": "11729:103:9" }, "returnParameters": { - "id": 2330, + "id": 2363, "nodeType": "ParameterList", "parameters": [], - "src": "11555:0:9" + "src": "11841:0:9" }, - "scope": 2391, - "src": "11429:318:9", + "scope": 2424, + "src": "11715:318:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 2371, + "id": 2404, "nodeType": "Block", - "src": "12180:77:9", + "src": "12466:77:9", "statements": [ { "eventCall": { "arguments": [ { - "id": 2363, + "id": 2396, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1430, - "src": "12206:8:9", + "referencedDeclaration": 1435, + "src": "12492:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2364, + "id": 2397, "name": "_minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2357, - "src": "12216:9:9", + "referencedDeclaration": 2390, + "src": "12502:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36910,18 +37515,18 @@ "typeString": "uint256" } ], - "id": 2362, + "id": 2395, "name": "MinDelayChange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1486, - "src": "12191:14:9", + "referencedDeclaration": 1491, + "src": "12477:14:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 2365, + "id": 2398, "isConstant": false, "isLValue": false, "isPure": false, @@ -36929,31 +37534,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12191:35:9", + "src": "12477:35:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2366, + "id": 2399, "nodeType": "EmitStatement", - "src": "12186:40:9" + "src": "12472:40:9" }, { "expression": { - "id": 2369, + "id": 2402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2367, + "id": 2400, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1430, - "src": "12232:8:9", + "referencedDeclaration": 1435, + "src": "12518:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36962,70 +37567,70 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2368, + "id": 2401, "name": "_minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2357, - "src": "12243:9:9", + "referencedDeclaration": 2390, + "src": "12529:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12232:20:9", + "src": "12518:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2370, + "id": 2403, "nodeType": "ExpressionStatement", - "src": "12232:20:9" + "src": "12518:20:9" } ] }, "documentation": { - "id": 2355, + "id": 2388, "nodeType": "StructuredDocumentation", - "src": "11751:358:9", + "src": "12037:358:9", "text": " @dev Changes the minimum wallet duration for future operations.\n Emits a {MinDelayChange} event.\n Requirements:\n - the caller must be the wallet itself. This can only be achieved by scheduling and later executing\n an operation where the wallet is the target and the data is the ABI-encoded call to this function." }, "functionSelector": "5037ec62", - "id": 2372, + "id": 2405, "implemented": true, "kind": "function", "modifiers": [ { - "id": 2360, + "id": 2393, "kind": "modifierInvocation", "modifierName": { - "id": 2359, + "id": 2392, "name": "onlyWallet", "nodeType": "IdentifierPath", - "referencedDeclaration": 1508, - "src": "12169:10:9" + "referencedDeclaration": 1513, + "src": "12455:10:9" }, "nodeType": "ModifierInvocation", - "src": "12169:10:9" + "src": "12455:10:9" } ], "name": "changeDelay", - "nameLocation": "12121:11:9", + "nameLocation": "12407:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2358, + "id": 2391, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2357, + "id": 2390, "mutability": "mutable", "name": "_minDelay", - "nameLocation": "12141:9:9", + "nameLocation": "12427:9:9", "nodeType": "VariableDeclaration", - "scope": 2372, - "src": "12133:17:9", + "scope": 2405, + "src": "12419:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37033,10 +37638,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2356, + "id": 2389, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12133:7:9", + "src": "12419:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37045,48 +37650,48 @@ "visibility": "internal" } ], - "src": "12132:19:9" + "src": "12418:19:9" }, "returnParameters": { - "id": 2361, + "id": 2394, "nodeType": "ParameterList", "parameters": [], - "src": "12180:0:9" + "src": "12466:0:9" }, - "scope": 2391, - "src": "12112:145:9", + "scope": 2424, + "src": "12398:145:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "external" }, { "body": { - "id": 2389, + "id": 2422, "nodeType": "Block", - "src": "12506:80:9", + "src": "12792:80:9", "statements": [ { "eventCall": { "arguments": [ { - "id": 2381, + "id": 2414, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "12535:8:9", + "referencedDeclaration": 1437, + "src": "12821:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2382, + "id": 2415, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "12545:9:9", + "referencedDeclaration": 2408, + "src": "12831:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37104,18 +37709,18 @@ "typeString": "uint256" } ], - "id": 2380, + "id": 2413, "name": "RequirementChange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "12517:17:9", + "referencedDeclaration": 1498, + "src": "12803:17:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 2383, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, @@ -37123,31 +37728,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12517:38:9", + "src": "12803:38:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2384, + "id": 2417, "nodeType": "EmitStatement", - "src": "12512:43:9" + "src": "12798:43:9" }, { "expression": { - "id": 2387, + "id": 2420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2385, + "id": 2418, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "12561:8:9", + "referencedDeclaration": 1437, + "src": "12847:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37156,70 +37761,70 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2386, + "id": 2419, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "12572:9:9", + "referencedDeclaration": 2408, + "src": "12858:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12561:20:9", + "src": "12847:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2388, + "id": 2421, "nodeType": "ExpressionStatement", - "src": "12561:20:9" + "src": "12847:20:9" } ] }, "documentation": { - "id": 2373, + "id": 2406, "nodeType": "StructuredDocumentation", - "src": "12261:168:9", + "src": "12547:168:9", "text": " @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n @param _required Number of required confirmations." }, "functionSelector": "ba51a6df", - "id": 2390, + "id": 2423, "implemented": true, "kind": "function", "modifiers": [ { - "id": 2378, + "id": 2411, "kind": "modifierInvocation", "modifierName": { - "id": 2377, + "id": 2410, "name": "onlyWallet", "nodeType": "IdentifierPath", - "referencedDeclaration": 1508, - "src": "12495:10:9" + "referencedDeclaration": 1513, + "src": "12781:10:9" }, "nodeType": "ModifierInvocation", - "src": "12495:10:9" + "src": "12781:10:9" } ], "name": "changeRequirement", - "nameLocation": "12441:17:9", + "nameLocation": "12727:17:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2376, + "id": 2409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2375, + "id": 2408, "mutability": "mutable", "name": "_required", - "nameLocation": "12467:9:9", + "nameLocation": "12753:9:9", "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "12459:17:9", + "scope": 2423, + "src": "12745:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37227,10 +37832,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2374, + "id": 2407, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12459:7:9", + "src": "12745:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37239,27 +37844,27 @@ "visibility": "internal" } ], - "src": "12458:19:9" + "src": "12744:19:9" }, "returnParameters": { - "id": 2379, + "id": 2412, "nodeType": "ParameterList", "parameters": [], - "src": "12506:0:9" + "src": "12792:0:9" }, - "scope": 2391, - "src": "12432:154:9", + "scope": 2424, + "src": "12718:154:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "external" } ], - "scope": 2392, - "src": "168:12420:9", + "scope": 2425, + "src": "168:12706:9", "usedErrors": [] } ], - "src": "32:12557:9" + "src": "32:12843:9" }, "compiler": { "name": "solc", @@ -37520,12 +38125,12 @@ } }, "links": {}, - "address": "0xc195196351566d2c4e13563C4492fB0BdB7894Fb", - "transactionHash": "0x6dc2474e9d4e35d9fbf82473806c1ffeffce560fdb7cd621e2035bf4b0741c90" + "address": "0xE7619121c60711101f3207F03ab39e8a8a960082", + "transactionHash": "0x00f29b0c5fd10b7c6516493e3283ff1309fcfedfdd46ffeb0032630c15151524" } }, "schemaVersion": "3.4.11", - "updatedAt": "2023-04-08T07:17:12.129Z", + "updatedAt": "2023-04-10T11:33:47.937Z", "networkType": "ethereum", "devdoc": { "events": { diff --git a/src/config/events.json b/src/config/events.json index e72f5dd..8e4e603 100644 --- a/src/config/events.json +++ b/src/config/events.json @@ -1,9 +1,9 @@ [ { - "address": "", - "event": "Transfer", - "abi": "ERC721", + "address": "0xc195196351566d2c4e13563C4492fB0BdB7894Fb", + "event": "Confirmation", + "abi": "BEMultiSigWallet", "fromBlock": 0, - "eventProcesser": "NftTransferEvent" + "eventProcesser": "ScheduleConfirmEvent" } ] diff --git a/src/models/RequestTask.ts b/src/models/RequestTask.ts index 267c3a3..10fda84 100644 --- a/src/models/RequestTask.ts +++ b/src/models/RequestTask.ts @@ -1,4 +1,4 @@ -import { getModelForClass, DocumentType, modelOptions, mongoose, prop, Severity } from '@typegoose/typegoose' +import { getModelForClass, DocumentType, modelOptions, mongoose, prop, Severity, index } from '@typegoose/typegoose' import { BlockChain } from 'chain/BlockChain' import { dbconn } from 'decorators/dbconn' import logger from 'logger/logger' @@ -24,6 +24,7 @@ export enum ReqTaskStatus { } @dbconn() +@index({ scheduleId: 1 }, { unique: false }) @modelOptions({ schemaOptions: { collection: 'chain_request_task', timestamps: true }, options: { allowMixed: Severity.ALLOW }, @@ -44,8 +45,8 @@ export class RequestTaskClass extends BaseModule { @prop({ required: true, default: 0 }) public maxTryCount: number - @prop({ type: mongoose.Schema.Types.Mixed }) - public reqDatas: any + @prop({ type: mongoose.Schema.Types.Mixed, default: [] }) + public reqDatas: any[] @prop({ enum: ReqTaskStatus, default: ReqTaskStatus.NOTSTART }) public status: ReqTaskStatus diff --git a/src/models/ScheduleConfirmEvent.ts b/src/models/ScheduleConfirmEvent.ts new file mode 100644 index 0000000..b03e9a8 --- /dev/null +++ b/src/models/ScheduleConfirmEvent.ts @@ -0,0 +1,55 @@ +import { getModelForClass, index, modelOptions, prop } from '@typegoose/typegoose' +import { dbconn } from 'decorators/dbconn' +import { BaseModule } from './Base' + +@dbconn() +@index({ tokenId: 1 }, { unique: false }) +@index({ transactionHash: 1, tokenId: 1, from: 1, to: 1 }, { unique: true }) +@modelOptions({ + schemaOptions: { collection: 'schedule_confirm_event', timestamps: true }, +}) +export class ScheduleConfirmEventClass extends BaseModule { + @prop({ required: true }) + public address!: string + @prop() + public event: string + @prop({ required: true }) + public transactionHash: string + @prop() + public blockNumber: number + @prop() + public blockHash: string + @prop() + public removed: boolean + @prop() + public operater: string + @prop() + public scheduleId: string + @prop() + public blockTime: number + @prop({ default: 0 }) + public version: number + + public static async saveEvent(event: any) { + if (!event.success) { + return + } + + const data = { + address: event.tokenAddress, + blockNumber: event.blockHeight, + removed: event.removed, + operater: event.sender, + scheduleId: event.id, + transactionHash: event.hash, + blockTime: new Date(event.time).getTime(), + $inc: { version: 1 }, + } + + return ScheduleConfirmEvent.insertOrUpdate({ transactionHash: event.hash }, data) + } +} + +export const ScheduleConfirmEvent = getModelForClass(ScheduleConfirmEventClass, { + existingConnection: ScheduleConfirmEventClass['db'], +}) diff --git a/src/monitor.ts b/src/monitor.ts index c95860f..a0b3b6f 100644 --- a/src/monitor.ts +++ b/src/monitor.ts @@ -6,6 +6,7 @@ dotenv.config({ path: envFile }) import { EventSyncSvr } from 'service/event.sync.service' import { NftTransferEvent } from 'models/NftTransferEvent' import { FtTransferEvent } from 'models/FtTransferEvent' +import { ScheduleConfirmEvent } from 'models/ScheduleConfirmEvent' import 'common/Extend' @@ -15,11 +16,12 @@ let lock = false let eventProcessers = { NftTransferEvent: NftTransferEvent, FtTransferEvent: FtTransferEvent, + ScheduleConfirmEvent: ScheduleConfirmEvent, } const events = require('config/events.json') -async function initNftSvrs() { +async function initEventSvrs() { // let nfts = [{ address: '0x37c30a2945799a53c5358636a721b442458fa691' }] for (let event of events) { let eventSvr = new EventSyncSvr({ @@ -33,7 +35,7 @@ async function initNftSvrs() { } } -async function parseNfts() { +async function parseAllEvents() { if (lock) { logger.info('sync in process, cancel.') return @@ -55,12 +57,11 @@ async function main() { let opts = { url: process.env.REDIS } new RedisClient(opts) logger.info('REDIS Connected') - await initNftSvrs() - logger.info('nft servers inited') + await initEventSvrs() setInterval(function () { - parseNfts() + parseAllEvents() }, 60000) - parseNfts() + parseAllEvents() } main()