diff --git a/build/contracts/NftDistributor.json b/build/contracts/NftDistributor.json index 9c45715..0208132 100644 --- a/build/contracts/NftDistributor.json +++ b/build/contracts/NftDistributor.json @@ -449,11 +449,30 @@ ], "stateMutability": "view", "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getMintableNftIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftTarget\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_nftSource\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manageAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftSIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftTIds\",\"type\":\"uint256[]\"}],\"name\":\"Minted\",\"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\":\"ADMIN_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\":\"MANAGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"addNFTData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getMintableCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":\"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\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"mintToUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract IBEERC721\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nftMinted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownerToNFTs\",\"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\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"source\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addNFTData(address,uint256[])\":{\"details\":\"The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user. mintToUser method would check if target user had permission to mint NFTs. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes in the address of the user and an array of NFT IDs. It then loops through the array of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\",\"params\":{\"_nftIds\":\"- An array of NFT IDs being added to the user's NFT data\",\"_user\":\"- The address of the user being updated with new NFT data\"}},\"constructor\":{\"details\":\"Contract constructor. Initializes the contract with the specified addresses and sets the admin and management roles. Parameters: - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE - _nftSource: The address of the source NFT that will check if user has mint permission. - _manageAddress: The address that will have the MANAGE_ROLE assigned.\"},\"getMintableCount(address)\":{\"details\":\"The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable count is being determined, and returns the number of NFTs owned by the user that have not yet been minted.\",\"params\":{\"_user\":\"- The address of the user whose mintable count is being determined\"},\"returns\":{\"_0\":\"count - The number of NFTs owned by the user that have not yet been minted\"}},\"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.\"},\"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`.\"},\"mintToUser(address,uint256[])\":{\"details\":\"The mintToUser function mints NFTs to a given user. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes an array of nftIds and checks that there are enough mintable NFTs for the user. It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted. Then it emits the Minted event with details of the operation.\",\"params\":{\"_nftIds\":\"- An array of the IDs for the NFTs being minted\",\"_user\":\"- The address of the user receiving the NFTs\"}},\"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`.\"},\"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.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/logic/NftDistributor.sol\":\"NftDistributor\"},\"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/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x516a22876c1fab47f49b1bc22b4614491cd05338af8bd2e7b382da090a079990\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a439187f7126d31add4557f82d8aed6be0162007cd7182c48fd934dbab8f3849\",\"dweb:/ipfs/QmRPLguRFvrRJS7r6F1bcLvsx6q1VrgjEpZafyeL8D7xZh\"]},\"@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/interfaces/IBEERC721.sol\":{\"keccak256\":\"0x41e372150274c8f64d1b7fcd047067ad2f8ad75742985b7b39bf3a58492a817d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15dd6b75bc85926688f51d606c9581f90a275bbc1ce8acdd01ff991ce47b0414\",\"dweb:/ipfs/Qmennh7yJUU6tpbNYAWVpr8qz3gfqSbji5UrU8ooLg1qw4\"]},\"project:/contracts/logic/NftDistributor.sol\":{\"keccak256\":\"0x9600771b2f937bf26c080e6cf8e1933b566f92fa430ad619988f89c81bafdc9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc29f523cf79c5d9645dfa369de050dddae4c640b485a78df5666f09faaf660f\",\"dweb:/ipfs/QmbBXgzKNCpeUAAkEoXfgH1DNpy5AH2tvT7JkLR3WPP9Gb\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620025f8380380620025f883398181016040528101906200003791906200056d565b620000697fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177580620001eb60201b60201c565b620000bb7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb5570917fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775620001eb60201b60201c565b620000fc7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775620000f06200024e60201b60201c565b6200025660201b60201c565b6200012e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775306200025660201b60201c565b620001607fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091826200025660201b60201c565b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620005c9565b6000620001fe836200026c60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b6200026882826200028b60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b620002a28282620002d360201b62000c201760201c565b620002ce8160016000858152602001908152602001600020620003c460201b62000d001790919060201c565b505050565b620002e58282620003fc60201b60201c565b620003c057600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003656200024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003f4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200046660201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200047a8383620004e060201b60201c565b620004d5578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620004da565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005358262000508565b9050919050565b620005478162000528565b81146200055357600080fd5b50565b60008151905062000567816200053c565b92915050565b60008060006060848603121562000589576200058862000503565b5b6000620005998682870162000556565b9350506020620005ac8682870162000556565b9250506040620005bf8682870162000556565b9150509250925092565b61201f80620005d96000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806375b238fc116100a2578063a217fddf11610071578063a217fddf146102f3578063ad0f93ad14610311578063ca15c87314610341578063d547741f14610371578063ffd68f151461038d57610116565b806375b238fc1461025957806384be00e4146102775780639010d07c1461029357806391d14854146102c357610116565b806336136433116100e957806336136433146101c757806336568abe146101e357806347ccca02146101ff57806360a4b76a1461021d57806367e828bf1461023b57610116565b806301ffc9a71461011b5780630431f2051461014b578063248a9ca31461017b5780632f2ff15d146101ab575b600080fd5b610135600480360381019061013091906114e2565b6103bd565b604051610142919061152a565b60405180910390f35b610165600480360381019061016091906115a3565b610437565b60405161017291906115e9565b60405180910390f35b6101956004803603810190610190919061163a565b610549565b6040516101a29190611676565b60405180910390f35b6101c560048036038101906101c09190611691565b610568565b005b6101e160048036038101906101dc9190611736565b610591565b005b6101fd60048036038101906101f89190611691565b6108f4565b005b610207610977565b60405161021491906117f5565b60405180910390f35b61022561099d565b6040516102329190611676565b60405180910390f35b6102436109c1565b604051610250919061181f565b60405180910390f35b6102616109e7565b60405161026e9190611676565b60405180910390f35b610291600480360381019061028c9190611736565b610a0b565b005b6102ad60048036038101906102a89190611866565b610ae2565b6040516102ba919061181f565b60405180910390f35b6102dd60048036038101906102d89190611691565b610b11565b6040516102ea919061152a565b60405180910390f35b6102fb610b7b565b6040516103089190611676565b60405180910390f35b61032b600480360381019061032691906118a6565b610b82565b60405161033891906115e9565b60405180910390f35b61035b6004803603810190610356919061163a565b610bb3565b60405161036891906115e9565b60405180910390f35b61038b60048036038101906103869190611691565b610bd7565b005b6103a760048036038101906103a291906118e6565b610c00565b6040516103b4919061152a565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610430575061042f82610d30565b5b9050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104c357602002820191906000526020600020905b8154815260200190600101908083116104af575b505050505090506000805b825181101561053e5760008382815181106104ec576104eb611913565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff1661052a57828061052690611971565b9350505b50808061053690611971565b9150506104ce565b508092505050919050565b6000806000838152602001908152602001600020600101549050919050565b61057182610549565b6105828161057d610daa565b610db2565b61058c8383610e4f565b505050565b6105c27fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb5570916105bd610daa565b610db2565b6105cb83610437565b828290501115610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790611a17565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561069b57602002820191906000526020600020905b815481526020019060010190808311610687575b505050505090506000808484905067ffffffffffffffff8111156106c2576106c1611a37565b5b6040519080825280602002602001820160405280156106f05781602001602082028036833780820191505090505b50905060005b835181101561086057600084828151811061071457610713611913565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff1661084c57600087878681811061075857610757611913565b5b905060200201359050848061076c90611971565b95505060016003600084815260200190815260200160002060006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198a836040518363ffffffff1660e01b81526004016107f8929190611a66565b600060405180830381600087803b15801561081257600080fd5b505af1158015610826573d6000803e3d6000fd5b505050508184868151811061083e5761083d611913565b5b602002602001018181525050505b50808061085890611971565b9150506106f6565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f044ffb6dcd4ec715d7d57b6c88fa43e63f1e156efb2a93d1072314f910286e9d8388886040516108e493929190611bbd565b60405180910390a3505050505050565b6108fc610daa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090611c68565b60405180910390fd5b6109738282610e83565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709181565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610a3c7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610a37610daa565b610db2565b60005b82829050811015610adc57600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838383818110610a9c57610a9b611913565b5b9050602002013590806001815401808255809150506001900390600052602060002001600090919091909150558080610ad490611971565b915050610a3f565b50505050565b6000610b098260016000868152602001908152602001600020610eb790919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b60026020528160005260406000208181548110610b9e57600080fd5b90600052602060002001600091509150505481565b6000610bd060016000848152602001908152602001600020610ed1565b9050919050565b610be082610549565b610bf181610bec610daa565b610db2565b610bfb8383610e83565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b610c2a8282610b11565b610cfc57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ca1610daa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610d28836000018373ffffffffffffffffffffffffffffffffffffffff1660001b610ee6565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610da35750610da282610f56565b5b9050919050565b600033905090565b610dbc8282610b11565b610e4b57610de18173ffffffffffffffffffffffffffffffffffffffff166014610fc0565b610def8360001c6020610fc0565b604051602001610e00929190611d9a565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e429190611e1e565b60405180910390fd5b5050565b610e598282610c20565b610e7e8160016000858152602001908152602001600020610d0090919063ffffffff16565b505050565b610e8d82826111fc565b610eb281600160008581526020019081526020016000206112dd90919063ffffffff16565b505050565b6000610ec6836000018361130d565b60001c905092915050565b6000610edf82600001611338565b9050919050565b6000610ef28383611349565b610f4b578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050610f50565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002610fd39190611e40565b610fdd9190611e9a565b67ffffffffffffffff811115610ff657610ff5611a37565b5b6040519080825280601f01601f1916602001820160405280156110285781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106110605761105f611913565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106110c4576110c3611913565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026111049190611e40565b61110e9190611e9a565b90505b60018111156111ae577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106111505761114f611913565b5b1a60f81b82828151811061116757611166611913565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806111a790611ef0565b9050611111565b50600084146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990611f66565b60405180910390fd5b8091505092915050565b6112068282610b11565b156112d957600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061127e610daa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611305836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61136c565b905092915050565b600082600001828154811061132557611324611913565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461147457600060018261139e9190611f86565b90506000600186600001805490506113b69190611f86565b90508181146114255760008660000182815481106113d7576113d6611913565b5b90600052602060002001549050808760000184815481106113fb576113fa611913565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061143957611438611fba565b5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061147a565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114bf8161148a565b81146114ca57600080fd5b50565b6000813590506114dc816114b6565b92915050565b6000602082840312156114f8576114f7611480565b5b6000611506848285016114cd565b91505092915050565b60008115159050919050565b6115248161150f565b82525050565b600060208201905061153f600083018461151b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061157082611545565b9050919050565b61158081611565565b811461158b57600080fd5b50565b60008135905061159d81611577565b92915050565b6000602082840312156115b9576115b8611480565b5b60006115c78482850161158e565b91505092915050565b6000819050919050565b6115e3816115d0565b82525050565b60006020820190506115fe60008301846115da565b92915050565b6000819050919050565b61161781611604565b811461162257600080fd5b50565b6000813590506116348161160e565b92915050565b6000602082840312156116505761164f611480565b5b600061165e84828501611625565b91505092915050565b61167081611604565b82525050565b600060208201905061168b6000830184611667565b92915050565b600080604083850312156116a8576116a7611480565b5b60006116b685828601611625565b92505060206116c78582860161158e565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126116f6576116f56116d1565b5b8235905067ffffffffffffffff811115611713576117126116d6565b5b60208301915083602082028301111561172f5761172e6116db565b5b9250929050565b60008060006040848603121561174f5761174e611480565b5b600061175d8682870161158e565b935050602084013567ffffffffffffffff81111561177e5761177d611485565b5b61178a868287016116e0565b92509250509250925092565b6000819050919050565b60006117bb6117b66117b184611545565b611796565b611545565b9050919050565b60006117cd826117a0565b9050919050565b60006117df826117c2565b9050919050565b6117ef816117d4565b82525050565b600060208201905061180a60008301846117e6565b92915050565b61181981611565565b82525050565b60006020820190506118346000830184611810565b92915050565b611843816115d0565b811461184e57600080fd5b50565b6000813590506118608161183a565b92915050565b6000806040838503121561187d5761187c611480565b5b600061188b85828601611625565b925050602061189c85828601611851565b9150509250929050565b600080604083850312156118bd576118bc611480565b5b60006118cb8582860161158e565b92505060206118dc85828601611851565b9150509250929050565b6000602082840312156118fc576118fb611480565b5b600061190a84828501611851565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061197c826115d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119af576119ae611942565b5b600182019050919050565b600082825260208201905092915050565b7f4d696e7461626c6520636f756e74206973206e6f7420656e6f75676800000000600082015250565b6000611a01601c836119ba565b9150611a0c826119cb565b602082019050919050565b60006020820190508181036000830152611a30816119f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000604082019050611a7b6000830185611810565b611a8860208301846115da565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ac4816115d0565b82525050565b6000611ad68383611abb565b60208301905092915050565b6000602082019050919050565b6000611afa82611a8f565b611b048185611a9a565b9350611b0f83611aab565b8060005b83811015611b40578151611b278882611aca565b9750611b3283611ae2565b925050600181019050611b13565b5085935050505092915050565b600080fd5b82818337600083830152505050565b6000611b6d8385611a9a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611ba057611b9f611b4d565b5b602083029250611bb1838584611b52565b82840190509392505050565b60006040820190508181036000830152611bd78186611aef565b90508181036020830152611bec818486611b61565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611c52602f836119ba565b9150611c5d82611bf6565b604082019050919050565b60006020820190508181036000830152611c8181611c45565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000611cc9601783611c88565b9150611cd482611c93565b601782019050919050565b600081519050919050565b60005b83811015611d08578082015181840152602081019050611ced565b83811115611d17576000848401525b50505050565b6000611d2882611cdf565b611d328185611c88565b9350611d42818560208601611cea565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000611d84601183611c88565b9150611d8f82611d4e565b601182019050919050565b6000611da582611cbc565b9150611db18285611d1d565b9150611dbc82611d77565b9150611dc88284611d1d565b91508190509392505050565b6000601f19601f8301169050919050565b6000611df082611cdf565b611dfa81856119ba565b9350611e0a818560208601611cea565b611e1381611dd4565b840191505092915050565b60006020820190508181036000830152611e388184611de5565b905092915050565b6000611e4b826115d0565b9150611e56836115d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e8f57611e8e611942565b5b828202905092915050565b6000611ea5826115d0565b9150611eb0836115d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611ee557611ee4611942565b5b828201905092915050565b6000611efb826115d0565b91506000821415611f0f57611f0e611942565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000611f506020836119ba565b9150611f5b82611f1a565b602082019050919050565b60006020820190508181036000830152611f7f81611f43565b9050919050565b6000611f91826115d0565b9150611f9c836115d0565b925082821015611faf57611fae611942565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212201957a7ce796dcee0223bfd51d57dbbaab2ef8022e12c29e416f4c0c78d8380a764736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806375b238fc116100a2578063a217fddf11610071578063a217fddf146102f3578063ad0f93ad14610311578063ca15c87314610341578063d547741f14610371578063ffd68f151461038d57610116565b806375b238fc1461025957806384be00e4146102775780639010d07c1461029357806391d14854146102c357610116565b806336136433116100e957806336136433146101c757806336568abe146101e357806347ccca02146101ff57806360a4b76a1461021d57806367e828bf1461023b57610116565b806301ffc9a71461011b5780630431f2051461014b578063248a9ca31461017b5780632f2ff15d146101ab575b600080fd5b610135600480360381019061013091906114e2565b6103bd565b604051610142919061152a565b60405180910390f35b610165600480360381019061016091906115a3565b610437565b60405161017291906115e9565b60405180910390f35b6101956004803603810190610190919061163a565b610549565b6040516101a29190611676565b60405180910390f35b6101c560048036038101906101c09190611691565b610568565b005b6101e160048036038101906101dc9190611736565b610591565b005b6101fd60048036038101906101f89190611691565b6108f4565b005b610207610977565b60405161021491906117f5565b60405180910390f35b61022561099d565b6040516102329190611676565b60405180910390f35b6102436109c1565b604051610250919061181f565b60405180910390f35b6102616109e7565b60405161026e9190611676565b60405180910390f35b610291600480360381019061028c9190611736565b610a0b565b005b6102ad60048036038101906102a89190611866565b610ae2565b6040516102ba919061181f565b60405180910390f35b6102dd60048036038101906102d89190611691565b610b11565b6040516102ea919061152a565b60405180910390f35b6102fb610b7b565b6040516103089190611676565b60405180910390f35b61032b600480360381019061032691906118a6565b610b82565b60405161033891906115e9565b60405180910390f35b61035b6004803603810190610356919061163a565b610bb3565b60405161036891906115e9565b60405180910390f35b61038b60048036038101906103869190611691565b610bd7565b005b6103a760048036038101906103a291906118e6565b610c00565b6040516103b4919061152a565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610430575061042f82610d30565b5b9050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104c357602002820191906000526020600020905b8154815260200190600101908083116104af575b505050505090506000805b825181101561053e5760008382815181106104ec576104eb611913565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff1661052a57828061052690611971565b9350505b50808061053690611971565b9150506104ce565b508092505050919050565b6000806000838152602001908152602001600020600101549050919050565b61057182610549565b6105828161057d610daa565b610db2565b61058c8383610e4f565b505050565b6105c27fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb5570916105bd610daa565b610db2565b6105cb83610437565b828290501115610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790611a17565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561069b57602002820191906000526020600020905b815481526020019060010190808311610687575b505050505090506000808484905067ffffffffffffffff8111156106c2576106c1611a37565b5b6040519080825280602002602001820160405280156106f05781602001602082028036833780820191505090505b50905060005b835181101561086057600084828151811061071457610713611913565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff1661084c57600087878681811061075857610757611913565b5b905060200201359050848061076c90611971565b95505060016003600084815260200190815260200160002060006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198a836040518363ffffffff1660e01b81526004016107f8929190611a66565b600060405180830381600087803b15801561081257600080fd5b505af1158015610826573d6000803e3d6000fd5b505050508184868151811061083e5761083d611913565b5b602002602001018181525050505b50808061085890611971565b9150506106f6565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f044ffb6dcd4ec715d7d57b6c88fa43e63f1e156efb2a93d1072314f910286e9d8388886040516108e493929190611bbd565b60405180910390a3505050505050565b6108fc610daa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090611c68565b60405180910390fd5b6109738282610e83565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709181565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610a3c7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610a37610daa565b610db2565b60005b82829050811015610adc57600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838383818110610a9c57610a9b611913565b5b9050602002013590806001815401808255809150506001900390600052602060002001600090919091909150558080610ad490611971565b915050610a3f565b50505050565b6000610b098260016000868152602001908152602001600020610eb790919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b60026020528160005260406000208181548110610b9e57600080fd5b90600052602060002001600091509150505481565b6000610bd060016000848152602001908152602001600020610ed1565b9050919050565b610be082610549565b610bf181610bec610daa565b610db2565b610bfb8383610e83565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b610c2a8282610b11565b610cfc57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ca1610daa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610d28836000018373ffffffffffffffffffffffffffffffffffffffff1660001b610ee6565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610da35750610da282610f56565b5b9050919050565b600033905090565b610dbc8282610b11565b610e4b57610de18173ffffffffffffffffffffffffffffffffffffffff166014610fc0565b610def8360001c6020610fc0565b604051602001610e00929190611d9a565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e429190611e1e565b60405180910390fd5b5050565b610e598282610c20565b610e7e8160016000858152602001908152602001600020610d0090919063ffffffff16565b505050565b610e8d82826111fc565b610eb281600160008581526020019081526020016000206112dd90919063ffffffff16565b505050565b6000610ec6836000018361130d565b60001c905092915050565b6000610edf82600001611338565b9050919050565b6000610ef28383611349565b610f4b578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050610f50565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002610fd39190611e40565b610fdd9190611e9a565b67ffffffffffffffff811115610ff657610ff5611a37565b5b6040519080825280601f01601f1916602001820160405280156110285781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106110605761105f611913565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106110c4576110c3611913565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026111049190611e40565b61110e9190611e9a565b90505b60018111156111ae577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106111505761114f611913565b5b1a60f81b82828151811061116757611166611913565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806111a790611ef0565b9050611111565b50600084146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990611f66565b60405180910390fd5b8091505092915050565b6112068282610b11565b156112d957600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061127e610daa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611305836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61136c565b905092915050565b600082600001828154811061132557611324611913565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461147457600060018261139e9190611f86565b90506000600186600001805490506113b69190611f86565b90508181146114255760008660000182815481106113d7576113d6611913565b5b90600052602060002001549050808760000184815481106113fb576113fa611913565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b8560000180548061143957611438611fba565b5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061147a565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114bf8161148a565b81146114ca57600080fd5b50565b6000813590506114dc816114b6565b92915050565b6000602082840312156114f8576114f7611480565b5b6000611506848285016114cd565b91505092915050565b60008115159050919050565b6115248161150f565b82525050565b600060208201905061153f600083018461151b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061157082611545565b9050919050565b61158081611565565b811461158b57600080fd5b50565b60008135905061159d81611577565b92915050565b6000602082840312156115b9576115b8611480565b5b60006115c78482850161158e565b91505092915050565b6000819050919050565b6115e3816115d0565b82525050565b60006020820190506115fe60008301846115da565b92915050565b6000819050919050565b61161781611604565b811461162257600080fd5b50565b6000813590506116348161160e565b92915050565b6000602082840312156116505761164f611480565b5b600061165e84828501611625565b91505092915050565b61167081611604565b82525050565b600060208201905061168b6000830184611667565b92915050565b600080604083850312156116a8576116a7611480565b5b60006116b685828601611625565b92505060206116c78582860161158e565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126116f6576116f56116d1565b5b8235905067ffffffffffffffff811115611713576117126116d6565b5b60208301915083602082028301111561172f5761172e6116db565b5b9250929050565b60008060006040848603121561174f5761174e611480565b5b600061175d8682870161158e565b935050602084013567ffffffffffffffff81111561177e5761177d611485565b5b61178a868287016116e0565b92509250509250925092565b6000819050919050565b60006117bb6117b66117b184611545565b611796565b611545565b9050919050565b60006117cd826117a0565b9050919050565b60006117df826117c2565b9050919050565b6117ef816117d4565b82525050565b600060208201905061180a60008301846117e6565b92915050565b61181981611565565b82525050565b60006020820190506118346000830184611810565b92915050565b611843816115d0565b811461184e57600080fd5b50565b6000813590506118608161183a565b92915050565b6000806040838503121561187d5761187c611480565b5b600061188b85828601611625565b925050602061189c85828601611851565b9150509250929050565b600080604083850312156118bd576118bc611480565b5b60006118cb8582860161158e565b92505060206118dc85828601611851565b9150509250929050565b6000602082840312156118fc576118fb611480565b5b600061190a84828501611851565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061197c826115d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119af576119ae611942565b5b600182019050919050565b600082825260208201905092915050565b7f4d696e7461626c6520636f756e74206973206e6f7420656e6f75676800000000600082015250565b6000611a01601c836119ba565b9150611a0c826119cb565b602082019050919050565b60006020820190508181036000830152611a30816119f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000604082019050611a7b6000830185611810565b611a8860208301846115da565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611ac4816115d0565b82525050565b6000611ad68383611abb565b60208301905092915050565b6000602082019050919050565b6000611afa82611a8f565b611b048185611a9a565b9350611b0f83611aab565b8060005b83811015611b40578151611b278882611aca565b9750611b3283611ae2565b925050600181019050611b13565b5085935050505092915050565b600080fd5b82818337600083830152505050565b6000611b6d8385611a9a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611ba057611b9f611b4d565b5b602083029250611bb1838584611b52565b82840190509392505050565b60006040820190508181036000830152611bd78186611aef565b90508181036020830152611bec818486611b61565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611c52602f836119ba565b9150611c5d82611bf6565b604082019050919050565b60006020820190508181036000830152611c8181611c45565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000611cc9601783611c88565b9150611cd482611c93565b601782019050919050565b600081519050919050565b60005b83811015611d08578082015181840152602081019050611ced565b83811115611d17576000848401525b50505050565b6000611d2882611cdf565b611d328185611c88565b9350611d42818560208601611cea565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000611d84601183611c88565b9150611d8f82611d4e565b601182019050919050565b6000611da582611cbc565b9150611db18285611d1d565b9150611dbc82611d77565b9150611dc88284611d1d565b91508190509392505050565b6000601f19601f8301169050919050565b6000611df082611cdf565b611dfa81856119ba565b9350611e0a818560208601611cea565b611e1381611dd4565b840191505092915050565b60006020820190508181036000830152611e388184611de5565b905092915050565b6000611e4b826115d0565b9150611e56836115d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e8f57611e8e611942565b5b828202905092915050565b6000611ea5826115d0565b9150611eb0836115d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611ee557611ee4611942565b5b828201905092915050565b6000611efb826115d0565b91506000821415611f0f57611f0e611942565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000611f506020836119ba565b9150611f5b82611f1a565b602082019050919050565b60006020820190508181036000830152611f7f81611f43565b9050919050565b6000611f91826115d0565b9150611f9c836115d0565b925082821015611faf57611fae611942565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212201957a7ce796dcee0223bfd51d57dbbaab2ef8022e12c29e416f4c0c78d8380a764736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftTarget\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_nftSource\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manageAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftSIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftTIds\",\"type\":\"uint256[]\"}],\"name\":\"Minted\",\"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\":\"ADMIN_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\":\"MANAGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"addNFTData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getMintableCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getMintableNftIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"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\":\"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\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"mintToUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract IBEERC721\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nftMinted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownerToNFTs\",\"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\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"source\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addNFTData(address,uint256[])\":{\"details\":\"The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user. mintToUser method would check if target user had permission to mint NFTs. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes in the address of the user and an array of NFT IDs. It then loops through the array of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\",\"params\":{\"_nftIds\":\"- An array of NFT IDs being added to the user's NFT data\",\"_user\":\"- The address of the user being updated with new NFT data\"}},\"constructor\":{\"details\":\"Contract constructor. Initializes the contract with the specified addresses and sets the admin and management roles. Parameters: - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE - _nftSource: The address of the source NFT that will check if user has mint permission. - _manageAddress: The address that will have the MANAGE_ROLE assigned.\"},\"getMintableCount(address)\":{\"details\":\"The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable count is being determined, and returns the number of NFTs owned by the user that have not yet been minted.\",\"params\":{\"_user\":\"- The address of the user whose mintable count is being determined\"},\"returns\":{\"_0\":\"count - The number of NFTs owned by the user that have not yet been minted\"}},\"getMintableNftIds(address)\":{\"details\":\"The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable NFT IDs are being determined, and returns an array of the NFT IDs owned by the user that have not yet been minted.\",\"params\":{\"_user\":\"- The address of the user whose mintable NFT IDs are being determined\"},\"returns\":{\"_0\":\"mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted\"}},\"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.\"},\"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`.\"},\"mintToUser(address,uint256[])\":{\"details\":\"The mintToUser function mints NFTs to a given user. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes an array of nftIds and checks that there are enough mintable NFTs for the user. It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted. Then it emits the Minted event with details of the operation.\",\"params\":{\"_nftIds\":\"- An array of the IDs for the NFTs being minted\",\"_user\":\"- The address of the user receiving the NFTs\"}},\"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`.\"},\"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.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/logic/NftDistributor.sol\":\"NftDistributor\"},\"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/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x516a22876c1fab47f49b1bc22b4614491cd05338af8bd2e7b382da090a079990\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a439187f7126d31add4557f82d8aed6be0162007cd7182c48fd934dbab8f3849\",\"dweb:/ipfs/QmRPLguRFvrRJS7r6F1bcLvsx6q1VrgjEpZafyeL8D7xZh\"]},\"@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/interfaces/IBEERC721.sol\":{\"keccak256\":\"0x41e372150274c8f64d1b7fcd047067ad2f8ad75742985b7b39bf3a58492a817d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15dd6b75bc85926688f51d606c9581f90a275bbc1ce8acdd01ff991ce47b0414\",\"dweb:/ipfs/Qmennh7yJUU6tpbNYAWVpr8qz3gfqSbji5UrU8ooLg1qw4\"]},\"project:/contracts/logic/NftDistributor.sol\":{\"keccak256\":\"0x552a7834711e25b871a4460d058c732b26e94a2f8e4ae56e06b98027b30952f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d952cd8d657e441889a46ea9a52ce49d8c173dae183e72b532f240f57d25af00\",\"dweb:/ipfs/QmYRS3mj8ijoS5JzN6eYDyzkXT3Vebkiz6GUBeezS51RGc\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620027d7380380620027d783398181016040528101906200003791906200056d565b620000697fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177580620001eb60201b60201c565b620000bb7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb5570917fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775620001eb60201b60201c565b620000fc7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775620000f06200024e60201b60201c565b6200025660201b60201c565b6200012e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775306200025660201b60201c565b620001607fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091826200025660201b60201c565b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620005c9565b6000620001fe836200026c60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b6200026882826200028b60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b620002a28282620002d360201b62000ddd1760201c565b620002ce8160016000858152602001908152602001600020620003c460201b62000ebd1790919060201c565b505050565b620002e58282620003fc60201b60201c565b620003c057600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003656200024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003f4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200046660201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200047a8383620004e060201b60201c565b620004d5578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620004da565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005358262000508565b9050919050565b620005478162000528565b81146200055357600080fd5b50565b60008151905062000567816200053c565b92915050565b60008060006060848603121562000589576200058862000503565b5b6000620005998682870162000556565b9350506020620005ac8682870162000556565b9250506040620005bf8682870162000556565b9150509250925092565b6121fe80620005d96000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806367e828bf116100ad578063a217fddf11610071578063a217fddf1461032e578063ad0f93ad1461034c578063ca15c8731461037c578063d547741f146103ac578063ffd68f15146103c857610121565b806367e828bf1461027657806375b238fc1461029457806384be00e4146102b25780639010d07c146102ce57806391d14854146102fe57610121565b80632f2ff15d116100f45780632f2ff15d146101e6578063361364331461020257806336568abe1461021e57806347ccca021461023a57806360a4b76a1461025857610121565b806301ffc9a714610126578063032221ad146101565780630431f20514610186578063248a9ca3146101b6575b600080fd5b610140600480360381019061013b919061169f565b6103f8565b60405161014d91906116e7565b60405180910390f35b610170600480360381019061016b9190611760565b610472565b60405161017d9190611855565b60405180910390f35b6101a0600480360381019061019b9190611760565b6105f4565b6040516101ad9190611886565b60405180910390f35b6101d060048036038101906101cb91906118d7565b610706565b6040516101dd9190611913565b60405180910390f35b61020060048036038101906101fb919061192e565b610725565b005b61021c600480360381019061021791906119d3565b61074e565b005b6102386004803603810190610233919061192e565b610ab1565b005b610242610b34565b60405161024f9190611a92565b60405180910390f35b610260610b5a565b60405161026d9190611913565b60405180910390f35b61027e610b7e565b60405161028b9190611abc565b60405180910390f35b61029c610ba4565b6040516102a99190611913565b60405180910390f35b6102cc60048036038101906102c791906119d3565b610bc8565b005b6102e860048036038101906102e39190611b03565b610c9f565b6040516102f59190611abc565b60405180910390f35b6103186004803603810190610313919061192e565b610cce565b60405161032591906116e7565b60405180910390f35b610336610d38565b6040516103439190611913565b60405180910390f35b61036660048036038101906103619190611b43565b610d3f565b6040516103739190611886565b60405180910390f35b610396600480360381019061039191906118d7565b610d70565b6040516103a39190611886565b60405180910390f35b6103c660048036038101906103c1919061192e565b610d94565b005b6103e260048036038101906103dd9190611b83565b610dbd565b6040516103ef91906116e7565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061046b575061046a82610eed565b5b9050919050565b60606000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104ff57602002820191906000526020600020905b8154815260200190600101908083116104eb575b505050505090506000815167ffffffffffffffff81111561052357610522611bb0565b5b6040519080825280602002602001820160405280156105515781602001602082028036833780820191505090505b5090506000805b83518110156105e857600084828151811061057657610575611bdf565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166105d457808484815181106105b9576105b8611bdf565b5b60200260200101818152505082806105d090611c3d565b9350505b5080806105e090611c3d565b915050610558565b50819350505050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561068057602002820191906000526020600020905b81548152602001906001019080831161066c575b505050505090506000805b82518110156106fb5760008382815181106106a9576106a8611bdf565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166106e75782806106e390611c3d565b9350505b5080806106f390611c3d565b91505061068b565b508092505050919050565b6000806000838152602001908152602001600020600101549050919050565b61072e82610706565b61073f8161073a610f67565b610f6f565b610749838361100c565b505050565b61077f7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709161077a610f67565b610f6f565b610788836105f4565b8282905011156107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490611ce3565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561085857602002820191906000526020600020905b815481526020019060010190808311610844575b505050505090506000808484905067ffffffffffffffff81111561087f5761087e611bb0565b5b6040519080825280602002602001820160405280156108ad5781602001602082028036833780820191505090505b50905060005b8351811015610a1d5760008482815181106108d1576108d0611bdf565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff16610a0957600087878681811061091557610914611bdf565b5b9050602002013590508184868151811061093257610931611bdf565b5b60200260200101818152505060016003600084815260200190815260200160002060006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198a836040518363ffffffff1660e01b81526004016109c7929190611d03565b600060405180830381600087803b1580156109e157600080fd5b505af11580156109f5573d6000803e3d6000fd5b505050508480610a0490611c3d565b955050505b508080610a1590611c3d565b9150506108b3565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f044ffb6dcd4ec715d7d57b6c88fa43e63f1e156efb2a93d1072314f910286e9d838888604051610aa193929190611d9c565b60405180910390a3505050505050565b610ab9610f67565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90611e47565b60405180910390fd5b610b308282611040565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709181565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610bf97fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610bf4610f67565b610f6f565b60005b82829050811015610c9957600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838383818110610c5957610c58611bdf565b5b9050602002013590806001815401808255809150506001900390600052602060002001600090919091909150558080610c9190611c3d565b915050610bfc565b50505050565b6000610cc6826001600086815260200190815260200160002061107490919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b60026020528160005260406000208181548110610d5b57600080fd5b90600052602060002001600091509150505481565b6000610d8d6001600084815260200190815260200160002061108e565b9050919050565b610d9d82610706565b610dae81610da9610f67565b610f6f565b610db88383611040565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b610de78282610cce565b610eb957600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e5e610f67565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610ee5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6110a3565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f605750610f5f82611113565b5b9050919050565b600033905090565b610f798282610cce565b61100857610f9e8173ffffffffffffffffffffffffffffffffffffffff16601461117d565b610fac8360001c602061117d565b604051602001610fbd929190611f79565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff9190611ffd565b60405180910390fd5b5050565b6110168282610ddd565b61103b8160016000858152602001908152602001600020610ebd90919063ffffffff16565b505050565b61104a82826113b9565b61106f816001600085815260200190815260200160002061149a90919063ffffffff16565b505050565b600061108383600001836114ca565b60001c905092915050565b600061109c826000016114f5565b9050919050565b60006110af8383611506565b61110857826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061110d565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611190919061201f565b61119a9190612079565b67ffffffffffffffff8111156111b3576111b2611bb0565b5b6040519080825280601f01601f1916602001820160405280156111e55781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061121d5761121c611bdf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061128157611280611bdf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026112c1919061201f565b6112cb9190612079565b90505b600181111561136b577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061130d5761130c611bdf565b5b1a60f81b82828151811061132457611323611bdf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611364906120cf565b90506112ce565b50600084146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612145565b60405180910390fd5b8091505092915050565b6113c38282610cce565b1561149657600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061143b610f67565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006114c2836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611529565b905092915050565b60008260000182815481106114e2576114e1611bdf565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461163157600060018261155b9190612165565b90506000600186600001805490506115739190612165565b90508181146115e257600086600001828154811061159457611593611bdf565b5b90600052602060002001549050808760000184815481106115b8576115b7611bdf565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806115f6576115f5612199565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611637565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61167c81611647565b811461168757600080fd5b50565b60008135905061169981611673565b92915050565b6000602082840312156116b5576116b461163d565b5b60006116c38482850161168a565b91505092915050565b60008115159050919050565b6116e1816116cc565b82525050565b60006020820190506116fc60008301846116d8565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061172d82611702565b9050919050565b61173d81611722565b811461174857600080fd5b50565b60008135905061175a81611734565b92915050565b6000602082840312156117765761177561163d565b5b60006117848482850161174b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b6117cc816117b9565b82525050565b60006117de83836117c3565b60208301905092915050565b6000602082019050919050565b60006118028261178d565b61180c8185611798565b9350611817836117a9565b8060005b8381101561184857815161182f88826117d2565b975061183a836117ea565b92505060018101905061181b565b5085935050505092915050565b6000602082019050818103600083015261186f81846117f7565b905092915050565b611880816117b9565b82525050565b600060208201905061189b6000830184611877565b92915050565b6000819050919050565b6118b4816118a1565b81146118bf57600080fd5b50565b6000813590506118d1816118ab565b92915050565b6000602082840312156118ed576118ec61163d565b5b60006118fb848285016118c2565b91505092915050565b61190d816118a1565b82525050565b60006020820190506119286000830184611904565b92915050565b600080604083850312156119455761194461163d565b5b6000611953858286016118c2565b92505060206119648582860161174b565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119935761199261196e565b5b8235905067ffffffffffffffff8111156119b0576119af611973565b5b6020830191508360208202830111156119cc576119cb611978565b5b9250929050565b6000806000604084860312156119ec576119eb61163d565b5b60006119fa8682870161174b565b935050602084013567ffffffffffffffff811115611a1b57611a1a611642565b5b611a278682870161197d565b92509250509250925092565b6000819050919050565b6000611a58611a53611a4e84611702565b611a33565b611702565b9050919050565b6000611a6a82611a3d565b9050919050565b6000611a7c82611a5f565b9050919050565b611a8c81611a71565b82525050565b6000602082019050611aa76000830184611a83565b92915050565b611ab681611722565b82525050565b6000602082019050611ad16000830184611aad565b92915050565b611ae0816117b9565b8114611aeb57600080fd5b50565b600081359050611afd81611ad7565b92915050565b60008060408385031215611b1a57611b1961163d565b5b6000611b28858286016118c2565b9250506020611b3985828601611aee565b9150509250929050565b60008060408385031215611b5a57611b5961163d565b5b6000611b688582860161174b565b9250506020611b7985828601611aee565b9150509250929050565b600060208284031215611b9957611b9861163d565b5b6000611ba784828501611aee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c48826117b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c7b57611c7a611c0e565b5b600182019050919050565b600082825260208201905092915050565b7f4d696e7461626c6520636f756e74206973206e6f7420656e6f75676800000000600082015250565b6000611ccd601c83611c86565b9150611cd882611c97565b602082019050919050565b60006020820190508181036000830152611cfc81611cc0565b9050919050565b6000604082019050611d186000830185611aad565b611d256020830184611877565b9392505050565b600080fd5b82818337600083830152505050565b6000611d4c8385611798565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611d7f57611d7e611d2c565b5b602083029250611d90838584611d31565b82840190509392505050565b60006040820190508181036000830152611db681866117f7565b90508181036020830152611dcb818486611d40565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611e31602f83611c86565b9150611e3c82611dd5565b604082019050919050565b60006020820190508181036000830152611e6081611e24565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000611ea8601783611e67565b9150611eb382611e72565b601782019050919050565b600081519050919050565b60005b83811015611ee7578082015181840152602081019050611ecc565b83811115611ef6576000848401525b50505050565b6000611f0782611ebe565b611f118185611e67565b9350611f21818560208601611ec9565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000611f63601183611e67565b9150611f6e82611f2d565b601182019050919050565b6000611f8482611e9b565b9150611f908285611efc565b9150611f9b82611f56565b9150611fa78284611efc565b91508190509392505050565b6000601f19601f8301169050919050565b6000611fcf82611ebe565b611fd98185611c86565b9350611fe9818560208601611ec9565b611ff281611fb3565b840191505092915050565b600060208201905081810360008301526120178184611fc4565b905092915050565b600061202a826117b9565b9150612035836117b9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561206e5761206d611c0e565b5b828202905092915050565b6000612084826117b9565b915061208f836117b9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120c4576120c3611c0e565b5b828201905092915050565b60006120da826117b9565b915060008214156120ee576120ed611c0e565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061212f602083611c86565b915061213a826120f9565b602082019050919050565b6000602082019050818103600083015261215e81612122565b9050919050565b6000612170826117b9565b915061217b836117b9565b92508282101561218e5761218d611c0e565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212206b6818bc4c19638f3c745f167d270038cc262caa02e00c0ee465aca521d2ccf464736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806367e828bf116100ad578063a217fddf11610071578063a217fddf1461032e578063ad0f93ad1461034c578063ca15c8731461037c578063d547741f146103ac578063ffd68f15146103c857610121565b806367e828bf1461027657806375b238fc1461029457806384be00e4146102b25780639010d07c146102ce57806391d14854146102fe57610121565b80632f2ff15d116100f45780632f2ff15d146101e6578063361364331461020257806336568abe1461021e57806347ccca021461023a57806360a4b76a1461025857610121565b806301ffc9a714610126578063032221ad146101565780630431f20514610186578063248a9ca3146101b6575b600080fd5b610140600480360381019061013b919061169f565b6103f8565b60405161014d91906116e7565b60405180910390f35b610170600480360381019061016b9190611760565b610472565b60405161017d9190611855565b60405180910390f35b6101a0600480360381019061019b9190611760565b6105f4565b6040516101ad9190611886565b60405180910390f35b6101d060048036038101906101cb91906118d7565b610706565b6040516101dd9190611913565b60405180910390f35b61020060048036038101906101fb919061192e565b610725565b005b61021c600480360381019061021791906119d3565b61074e565b005b6102386004803603810190610233919061192e565b610ab1565b005b610242610b34565b60405161024f9190611a92565b60405180910390f35b610260610b5a565b60405161026d9190611913565b60405180910390f35b61027e610b7e565b60405161028b9190611abc565b60405180910390f35b61029c610ba4565b6040516102a99190611913565b60405180910390f35b6102cc60048036038101906102c791906119d3565b610bc8565b005b6102e860048036038101906102e39190611b03565b610c9f565b6040516102f59190611abc565b60405180910390f35b6103186004803603810190610313919061192e565b610cce565b60405161032591906116e7565b60405180910390f35b610336610d38565b6040516103439190611913565b60405180910390f35b61036660048036038101906103619190611b43565b610d3f565b6040516103739190611886565b60405180910390f35b610396600480360381019061039191906118d7565b610d70565b6040516103a39190611886565b60405180910390f35b6103c660048036038101906103c1919061192e565b610d94565b005b6103e260048036038101906103dd9190611b83565b610dbd565b6040516103ef91906116e7565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061046b575061046a82610eed565b5b9050919050565b60606000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104ff57602002820191906000526020600020905b8154815260200190600101908083116104eb575b505050505090506000815167ffffffffffffffff81111561052357610522611bb0565b5b6040519080825280602002602001820160405280156105515781602001602082028036833780820191505090505b5090506000805b83518110156105e857600084828151811061057657610575611bdf565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166105d457808484815181106105b9576105b8611bdf565b5b60200260200101818152505082806105d090611c3d565b9350505b5080806105e090611c3d565b915050610558565b50819350505050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561068057602002820191906000526020600020905b81548152602001906001019080831161066c575b505050505090506000805b82518110156106fb5760008382815181106106a9576106a8611bdf565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166106e75782806106e390611c3d565b9350505b5080806106f390611c3d565b91505061068b565b508092505050919050565b6000806000838152602001908152602001600020600101549050919050565b61072e82610706565b61073f8161073a610f67565b610f6f565b610749838361100c565b505050565b61077f7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709161077a610f67565b610f6f565b610788836105f4565b8282905011156107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490611ce3565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561085857602002820191906000526020600020905b815481526020019060010190808311610844575b505050505090506000808484905067ffffffffffffffff81111561087f5761087e611bb0565b5b6040519080825280602002602001820160405280156108ad5781602001602082028036833780820191505090505b50905060005b8351811015610a1d5760008482815181106108d1576108d0611bdf565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff16610a0957600087878681811061091557610914611bdf565b5b9050602002013590508184868151811061093257610931611bdf565b5b60200260200101818152505060016003600084815260200190815260200160002060006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198a836040518363ffffffff1660e01b81526004016109c7929190611d03565b600060405180830381600087803b1580156109e157600080fd5b505af11580156109f5573d6000803e3d6000fd5b505050508480610a0490611c3d565b955050505b508080610a1590611c3d565b9150506108b3565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f044ffb6dcd4ec715d7d57b6c88fa43e63f1e156efb2a93d1072314f910286e9d838888604051610aa193929190611d9c565b60405180910390a3505050505050565b610ab9610f67565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90611e47565b60405180910390fd5b610b308282611040565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709181565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610bf97fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610bf4610f67565b610f6f565b60005b82829050811015610c9957600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838383818110610c5957610c58611bdf565b5b9050602002013590806001815401808255809150506001900390600052602060002001600090919091909150558080610c9190611c3d565b915050610bfc565b50505050565b6000610cc6826001600086815260200190815260200160002061107490919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b60026020528160005260406000208181548110610d5b57600080fd5b90600052602060002001600091509150505481565b6000610d8d6001600084815260200190815260200160002061108e565b9050919050565b610d9d82610706565b610dae81610da9610f67565b610f6f565b610db88383611040565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b610de78282610cce565b610eb957600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e5e610f67565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610ee5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6110a3565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f605750610f5f82611113565b5b9050919050565b600033905090565b610f798282610cce565b61100857610f9e8173ffffffffffffffffffffffffffffffffffffffff16601461117d565b610fac8360001c602061117d565b604051602001610fbd929190611f79565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff9190611ffd565b60405180910390fd5b5050565b6110168282610ddd565b61103b8160016000858152602001908152602001600020610ebd90919063ffffffff16565b505050565b61104a82826113b9565b61106f816001600085815260200190815260200160002061149a90919063ffffffff16565b505050565b600061108383600001836114ca565b60001c905092915050565b600061109c826000016114f5565b9050919050565b60006110af8383611506565b61110857826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061110d565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611190919061201f565b61119a9190612079565b67ffffffffffffffff8111156111b3576111b2611bb0565b5b6040519080825280601f01601f1916602001820160405280156111e55781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061121d5761121c611bdf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061128157611280611bdf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026112c1919061201f565b6112cb9190612079565b90505b600181111561136b577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061130d5761130c611bdf565b5b1a60f81b82828151811061132457611323611bdf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611364906120cf565b90506112ce565b50600084146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612145565b60405180910390fd5b8091505092915050565b6113c38282610cce565b1561149657600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061143b610f67565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006114c2836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611529565b905092915050565b60008260000182815481106114e2576114e1611bdf565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461163157600060018261155b9190612165565b90506000600186600001805490506115739190612165565b90508181146115e257600086600001828154811061159457611593611bdf565b5b90600052602060002001549050808760000184815481106115b8576115b7611bdf565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806115f6576115f5612199565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611637565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61167c81611647565b811461168757600080fd5b50565b60008135905061169981611673565b92915050565b6000602082840312156116b5576116b461163d565b5b60006116c38482850161168a565b91505092915050565b60008115159050919050565b6116e1816116cc565b82525050565b60006020820190506116fc60008301846116d8565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061172d82611702565b9050919050565b61173d81611722565b811461174857600080fd5b50565b60008135905061175a81611734565b92915050565b6000602082840312156117765761177561163d565b5b60006117848482850161174b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b6117cc816117b9565b82525050565b60006117de83836117c3565b60208301905092915050565b6000602082019050919050565b60006118028261178d565b61180c8185611798565b9350611817836117a9565b8060005b8381101561184857815161182f88826117d2565b975061183a836117ea565b92505060018101905061181b565b5085935050505092915050565b6000602082019050818103600083015261186f81846117f7565b905092915050565b611880816117b9565b82525050565b600060208201905061189b6000830184611877565b92915050565b6000819050919050565b6118b4816118a1565b81146118bf57600080fd5b50565b6000813590506118d1816118ab565b92915050565b6000602082840312156118ed576118ec61163d565b5b60006118fb848285016118c2565b91505092915050565b61190d816118a1565b82525050565b60006020820190506119286000830184611904565b92915050565b600080604083850312156119455761194461163d565b5b6000611953858286016118c2565b92505060206119648582860161174b565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119935761199261196e565b5b8235905067ffffffffffffffff8111156119b0576119af611973565b5b6020830191508360208202830111156119cc576119cb611978565b5b9250929050565b6000806000604084860312156119ec576119eb61163d565b5b60006119fa8682870161174b565b935050602084013567ffffffffffffffff811115611a1b57611a1a611642565b5b611a278682870161197d565b92509250509250925092565b6000819050919050565b6000611a58611a53611a4e84611702565b611a33565b611702565b9050919050565b6000611a6a82611a3d565b9050919050565b6000611a7c82611a5f565b9050919050565b611a8c81611a71565b82525050565b6000602082019050611aa76000830184611a83565b92915050565b611ab681611722565b82525050565b6000602082019050611ad16000830184611aad565b92915050565b611ae0816117b9565b8114611aeb57600080fd5b50565b600081359050611afd81611ad7565b92915050565b60008060408385031215611b1a57611b1961163d565b5b6000611b28858286016118c2565b9250506020611b3985828601611aee565b9150509250929050565b60008060408385031215611b5a57611b5961163d565b5b6000611b688582860161174b565b9250506020611b7985828601611aee565b9150509250929050565b600060208284031215611b9957611b9861163d565b5b6000611ba784828501611aee565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c48826117b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c7b57611c7a611c0e565b5b600182019050919050565b600082825260208201905092915050565b7f4d696e7461626c6520636f756e74206973206e6f7420656e6f75676800000000600082015250565b6000611ccd601c83611c86565b9150611cd882611c97565b602082019050919050565b60006020820190508181036000830152611cfc81611cc0565b9050919050565b6000604082019050611d186000830185611aad565b611d256020830184611877565b9392505050565b600080fd5b82818337600083830152505050565b6000611d4c8385611798565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611d7f57611d7e611d2c565b5b602083029250611d90838584611d31565b82840190509392505050565b60006040820190508181036000830152611db681866117f7565b90508181036020830152611dcb818486611d40565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611e31602f83611c86565b9150611e3c82611dd5565b604082019050919050565b60006020820190508181036000830152611e6081611e24565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000611ea8601783611e67565b9150611eb382611e72565b601782019050919050565b600081519050919050565b60005b83811015611ee7578082015181840152602081019050611ecc565b83811115611ef6576000848401525b50505050565b6000611f0782611ebe565b611f118185611e67565b9350611f21818560208601611ec9565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000611f63601183611e67565b9150611f6e82611f2d565b601182019050919050565b6000611f8482611e9b565b9150611f908285611efc565b9150611f9b82611f56565b9150611fa78284611efc565b91508190509392505050565b6000601f19601f8301169050919050565b6000611fcf82611ebe565b611fd98185611c86565b9350611fe9818560208601611ec9565b611ff281611fb3565b840191505092915050565b600060208201905081810360008301526120178184611fc4565b905092915050565b600061202a826117b9565b9150612035836117b9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561206e5761206d611c0e565b5b828202905092915050565b6000612084826117b9565b915061208f836117b9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120c4576120c3611c0e565b5b828201905092915050565b60006120da826117b9565b915060008214156120ee576120ed611c0e565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061212f602083611c86565b915061213a826120f9565b602082019050919050565b6000602082019050818103600083015261215e81612122565b9050919050565b6000612170826117b9565b915061217b836117b9565b92508282101561218e5761218d611c0e565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212206b6818bc4c19638f3c745f167d270038cc262caa02e00c0ee465aca521d2ccf464736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [ { @@ -1224,7 +1243,7 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:21419:12", + "src": "0:21798:12", "statements": [ { "body": { @@ -2469,21 +2488,244 @@ { "body": { "nodeType": "YulBlock", - "src": "2405:32:12", + "src": "2434:40:12", "statements": [ { "nodeType": "YulAssignment", - "src": "2415:16:12", + "src": "2445:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2461:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2455:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "2455:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2445:6:12" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2417:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2427:6:12", + "type": "" + } + ], + "src": "2360:114:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2591:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2608:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2613:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2601:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2601:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2601:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "2629:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2648:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2653:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2644:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2644:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2629:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2563:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2568:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "2579:11:12", + "type": "" + } + ], + "src": "2480:184:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2742:60:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2752:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "2760:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "2752:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2773:22:12", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "2785:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2781:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2781:14:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "2773:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "2729:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "2737:4:12", + "type": "" + } + ], + "src": "2670:132:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2853:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2863:16:12", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "2426:5:12" + "src": "2874:5:12" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "2415:7:12" + "src": "2863:7:12" } ] } @@ -2495,7 +2737,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2387:5:12", + "src": "2835:5:12", "type": "" } ], @@ -2503,16 +2745,16 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "2397:7:12", + "src": "2845:7:12", "type": "" } ], - "src": "2360:77:12" + "src": "2808:77:12" }, { "body": { "nodeType": "YulBlock", - "src": "2508:53:12", + "src": "2946:53:12", "statements": [ { "expression": { @@ -2520,35 +2762,744 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "2525:3:12" + "src": "2963:3:12" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2548:5:12" + "src": "2986:5:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "2530:17:12" + "src": "2968:17:12" }, "nodeType": "YulFunctionCall", - "src": "2530:24:12" + "src": "2968:24:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "2518:6:12" + "src": "2956:6:12" }, "nodeType": "YulFunctionCall", - "src": "2518:37:12" + "src": "2956:37:12" }, "nodeType": "YulExpressionStatement", - "src": "2518:37:12" + "src": "2956:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2934:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2941:3:12", + "type": "" + } + ], + "src": "2891:108:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3085:99:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3129:6:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3137:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "3095:33:12" + }, + "nodeType": "YulFunctionCall", + "src": "3095:46:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3095:46:12" + }, + { + "nodeType": "YulAssignment", + "src": "3150:28:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3168:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3173:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3164:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3164:14:12" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "3150:10:12" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3058:6:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3066:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "3074:10:12", + "type": "" + } + ], + "src": "3005:179:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3265:38:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3275:22:12", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "3287:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3292:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3283:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3283:14:12" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "3275:4:12" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "3252:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "3260:4:12", + "type": "" + } + ], + "src": "3190:113:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3463:608:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3473:68:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3535:5:12" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3487:47:12" + }, + "nodeType": "YulFunctionCall", + "src": "3487:54:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3477:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3550:93:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3631:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3636:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3557:73:12" + }, + "nodeType": "YulFunctionCall", + "src": "3557:86:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3550:3:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3652:71:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3717:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3667:49:12" + }, + "nodeType": "YulFunctionCall", + "src": "3667:56:12" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "3656:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3732:21:12", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "3746:7:12" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "3736:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3822:224:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3836:34:12", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "3863:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3857:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "3857:13:12" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "3840:13:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3883:70:12", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "3934:13:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3949:3:12" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "3890:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "3890:63:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3883:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3966:70:12", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "4029:6:12" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3976:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "3976:60:12" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "3966:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3784:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3787:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3781:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3781:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "3795:18:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3797:14:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3806:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3809:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3802:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3802:9:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3797:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "3766:14:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3768:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3777:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "3772:1:12", + "type": "" + } + ] + } + ] + }, + "src": "3762:284:12" + }, + { + "nodeType": "YulAssignment", + "src": "4055:10:12", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4062:3:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4055:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3442:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3449:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3458:3:12", + "type": "" + } + ], + "src": "3339:732:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4225:225:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4235:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4247:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4258:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4243:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4243:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4235:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4282:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4293:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4278:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4278:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4301:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4307:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4297:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4297:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4271:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4271:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4271:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "4327:116:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4429:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4438:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4335:93:12" + }, + "nodeType": "YulFunctionCall", + "src": "4335:108:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4327:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4197:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4209:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4220:4:12", + "type": "" + } + ], + "src": "4077:373:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4521:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4538:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4561:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4543:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4543:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4531:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4531:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4531:37:12" } ] }, @@ -2558,37 +3509,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2496:5:12", + "src": "4509:5:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "2503:3:12", + "src": "4516:3:12", "type": "" } ], - "src": "2443:118:12" + "src": "4456:118:12" }, { "body": { "nodeType": "YulBlock", - "src": "2665:124:12", + "src": "4678:124:12", "statements": [ { "nodeType": "YulAssignment", - "src": "2675:26:12", + "src": "4688:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2687:9:12" + "src": "4700:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2698:2:12", + "src": "4711:2:12", "type": "", "value": "32" } @@ -2596,16 +3547,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2683:3:12" + "src": "4696:3:12" }, "nodeType": "YulFunctionCall", - "src": "2683:18:12" + "src": "4696:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "2675:4:12" + "src": "4688:4:12" } ] }, @@ -2615,19 +3566,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "2755:6:12" + "src": "4768:6:12" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "2768:9:12" + "src": "4781:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2779:1:12", + "src": "4792:1:12", "type": "", "value": "0" } @@ -2635,22 +3586,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "2764:3:12" + "src": "4777:3:12" }, "nodeType": "YulFunctionCall", - "src": "2764:17:12" + "src": "4777:17:12" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "2711:43:12" + "src": "4724:43:12" }, "nodeType": "YulFunctionCall", - "src": "2711:71:12" + "src": "4724:71:12" }, "nodeType": "YulExpressionStatement", - "src": "2711:71:12" + "src": "4724:71:12" } ] }, @@ -2660,13 +3611,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "2637:9:12", + "src": "4650:9:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "2649:6:12", + "src": "4662:6:12", "type": "" } ], @@ -2674,30 +3625,30 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "2660:4:12", + "src": "4673:4:12", "type": "" } ], - "src": "2567:222:12" + "src": "4580:222:12" }, { "body": { "nodeType": "YulBlock", - "src": "2840:32:12", + "src": "4853:32:12", "statements": [ { "nodeType": "YulAssignment", - "src": "2850:16:12", + "src": "4863:16:12", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "2861:5:12" + "src": "4874:5:12" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", - "src": "2850:7:12" + "src": "4863:7:12" } ] } @@ -2709,7 +3660,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2822:5:12", + "src": "4835:5:12", "type": "" } ], @@ -2717,21 +3668,21 @@ { "name": "cleaned", "nodeType": "YulTypedName", - "src": "2832:7:12", + "src": "4845:7:12", "type": "" } ], - "src": "2795:77:12" + "src": "4808:77:12" }, { "body": { "nodeType": "YulBlock", - "src": "2921:79:12", + "src": "4934:79:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "2978:16:12", + "src": "4991:16:12", "statements": [ { "expression": { @@ -2739,14 +3690,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "2987:1:12", + "src": "5000:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "2990:1:12", + "src": "5003:1:12", "type": "", "value": "0" } @@ -2754,13 +3705,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "2980:6:12" + "src": "4993:6:12" }, "nodeType": "YulFunctionCall", - "src": "2980:12:12" + "src": "4993:12:12" }, "nodeType": "YulExpressionStatement", - "src": "2980:12:12" + "src": "4993:12:12" } ] }, @@ -2771,44 +3722,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "2944:5:12" + "src": "4957:5:12" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "2969:5:12" + "src": "4982:5:12" } ], "functionName": { "name": "cleanup_t_bytes32", "nodeType": "YulIdentifier", - "src": "2951:17:12" + "src": "4964:17:12" }, "nodeType": "YulFunctionCall", - "src": "2951:24:12" + "src": "4964:24:12" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "2941:2:12" + "src": "4954:2:12" }, "nodeType": "YulFunctionCall", - "src": "2941:35:12" + "src": "4954:35:12" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "2934:6:12" + "src": "4947:6:12" }, "nodeType": "YulFunctionCall", - "src": "2934:43:12" + "src": "4947:43:12" }, "nodeType": "YulIf", - "src": "2931:63:12" + "src": "4944:63:12" } ] }, @@ -2818,41 +3769,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "2914:5:12", + "src": "4927:5:12", "type": "" } ], - "src": "2878:122:12" + "src": "4891:122:12" }, { "body": { "nodeType": "YulBlock", - "src": "3058:87:12", + "src": "5071:87:12", "statements": [ { "nodeType": "YulAssignment", - "src": "3068:29:12", + "src": "5081:29:12", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "3090:6:12" + "src": "5103:6:12" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "3077:12:12" + "src": "5090:12:12" }, "nodeType": "YulFunctionCall", - "src": "3077:20:12" + "src": "5090:20:12" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "3068:5:12" + "src": "5081:5:12" } ] }, @@ -2862,19 +3813,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "3133:5:12" + "src": "5146:5:12" } ], "functionName": { "name": "validator_revert_t_bytes32", "nodeType": "YulIdentifier", - "src": "3106:26:12" + "src": "5119:26:12" }, "nodeType": "YulFunctionCall", - "src": "3106:33:12" + "src": "5119:33:12" }, "nodeType": "YulExpressionStatement", - "src": "3106:33:12" + "src": "5119:33:12" } ] }, @@ -2884,13 +3835,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "3036:6:12", + "src": "5049:6:12", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "3044:3:12", + "src": "5057:3:12", "type": "" } ], @@ -2898,21 +3849,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "3052:5:12", + "src": "5065:5:12", "type": "" } ], - "src": "3006:139:12" + "src": "5019:139:12" }, { "body": { "nodeType": "YulBlock", - "src": "3217:263:12", + "src": "5230:263:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3263:83:12", + "src": "5276:83:12", "statements": [ { "expression": { @@ -2920,13 +3871,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "3265:77:12" + "src": "5278:77:12" }, "nodeType": "YulFunctionCall", - "src": "3265:79:12" + "src": "5278:79:12" }, "nodeType": "YulExpressionStatement", - "src": "3265:79:12" + "src": "5278:79:12" } ] }, @@ -2937,26 +3888,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3238:7:12" + "src": "5251:7:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3247:9:12" + "src": "5260:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3234:3:12" + "src": "5247:3:12" }, "nodeType": "YulFunctionCall", - "src": "3234:23:12" + "src": "5247:23:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3259:2:12", + "src": "5272:2:12", "type": "", "value": "32" } @@ -2964,25 +3915,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "3230:3:12" + "src": "5243:3:12" }, "nodeType": "YulFunctionCall", - "src": "3230:32:12" + "src": "5243:32:12" }, "nodeType": "YulIf", - "src": "3227:119:12" + "src": "5240:119:12" }, { "nodeType": "YulBlock", - "src": "3356:117:12", + "src": "5369:117:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "3371:15:12", + "src": "5384:15:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "3385:1:12", + "src": "5398:1:12", "type": "", "value": "0" }, @@ -2990,14 +3941,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "3375:6:12", + "src": "5388:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "3400:63:12", + "src": "5413:63:12", "value": { "arguments": [ { @@ -3005,41 +3956,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3435:9:12" + "src": "5448:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "3446:6:12" + "src": "5459:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3431:3:12" + "src": "5444:3:12" }, "nodeType": "YulFunctionCall", - "src": "3431:22:12" + "src": "5444:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3455:7:12" + "src": "5468:7:12" } ], "functionName": { "name": "abi_decode_t_bytes32", "nodeType": "YulIdentifier", - "src": "3410:20:12" + "src": "5423:20:12" }, "nodeType": "YulFunctionCall", - "src": "3410:53:12" + "src": "5423:53:12" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3400:6:12" + "src": "5413:6:12" } ] } @@ -3053,13 +4004,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3187:9:12", + "src": "5200:9:12", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "3198:7:12", + "src": "5211:7:12", "type": "" } ], @@ -3067,16 +4018,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "3210:6:12", + "src": "5223:6:12", "type": "" } ], - "src": "3151:329:12" + "src": "5164:329:12" }, { "body": { "nodeType": "YulBlock", - "src": "3551:53:12", + "src": "5564:53:12", "statements": [ { "expression": { @@ -3084,35 +4035,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "3568:3:12" + "src": "5581:3:12" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "3591:5:12" + "src": "5604:5:12" } ], "functionName": { "name": "cleanup_t_bytes32", "nodeType": "YulIdentifier", - "src": "3573:17:12" + "src": "5586:17:12" }, "nodeType": "YulFunctionCall", - "src": "3573:24:12" + "src": "5586:24:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "3561:6:12" + "src": "5574:6:12" }, "nodeType": "YulFunctionCall", - "src": "3561:37:12" + "src": "5574:37:12" }, "nodeType": "YulExpressionStatement", - "src": "3561:37:12" + "src": "5574:37:12" } ] }, @@ -3122,37 +4073,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "3539:5:12", + "src": "5552:5:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "3546:3:12", + "src": "5559:3:12", "type": "" } ], - "src": "3486:118:12" + "src": "5499:118:12" }, { "body": { "nodeType": "YulBlock", - "src": "3708:124:12", + "src": "5721:124:12", "statements": [ { "nodeType": "YulAssignment", - "src": "3718:26:12", + "src": "5731:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3730:9:12" + "src": "5743:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3741:2:12", + "src": "5754:2:12", "type": "", "value": "32" } @@ -3160,16 +4111,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3726:3:12" + "src": "5739:3:12" }, "nodeType": "YulFunctionCall", - "src": "3726:18:12" + "src": "5739:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "3718:4:12" + "src": "5731:4:12" } ] }, @@ -3179,19 +4130,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "3798:6:12" + "src": "5811:6:12" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3811:9:12" + "src": "5824:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3822:1:12", + "src": "5835:1:12", "type": "", "value": "0" } @@ -3199,22 +4150,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "3807:3:12" + "src": "5820:3:12" }, "nodeType": "YulFunctionCall", - "src": "3807:17:12" + "src": "5820:17:12" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", "nodeType": "YulIdentifier", - "src": "3754:43:12" + "src": "5767:43:12" }, "nodeType": "YulFunctionCall", - "src": "3754:71:12" + "src": "5767:71:12" }, "nodeType": "YulExpressionStatement", - "src": "3754:71:12" + "src": "5767:71:12" } ] }, @@ -3224,13 +4175,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3680:9:12", + "src": "5693:9:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "3692:6:12", + "src": "5705:6:12", "type": "" } ], @@ -3238,21 +4189,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "3703:4:12", + "src": "5716:4:12", "type": "" } ], - "src": "3610:222:12" + "src": "5623:222:12" }, { "body": { "nodeType": "YulBlock", - "src": "3921:391:12", + "src": "5934:391:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "3967:83:12", + "src": "5980:83:12", "statements": [ { "expression": { @@ -3260,13 +4211,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "3969:77:12" + "src": "5982:77:12" }, "nodeType": "YulFunctionCall", - "src": "3969:79:12" + "src": "5982:79:12" }, "nodeType": "YulExpressionStatement", - "src": "3969:79:12" + "src": "5982:79:12" } ] }, @@ -3277,26 +4228,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "3942:7:12" + "src": "5955:7:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "3951:9:12" + "src": "5964:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "3938:3:12" + "src": "5951:3:12" }, "nodeType": "YulFunctionCall", - "src": "3938:23:12" + "src": "5951:23:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "3963:2:12", + "src": "5976:2:12", "type": "", "value": "64" } @@ -3304,25 +4255,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "3934:3:12" + "src": "5947:3:12" }, "nodeType": "YulFunctionCall", - "src": "3934:32:12" + "src": "5947:32:12" }, "nodeType": "YulIf", - "src": "3931:119:12" + "src": "5944:119:12" }, { "nodeType": "YulBlock", - "src": "4060:117:12", + "src": "6073:117:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4075:15:12", + "src": "6088:15:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "4089:1:12", + "src": "6102:1:12", "type": "", "value": "0" }, @@ -3330,14 +4281,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "4079:6:12", + "src": "6092:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "4104:63:12", + "src": "6117:63:12", "value": { "arguments": [ { @@ -3345,41 +4296,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4139:9:12" + "src": "6152:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4150:6:12" + "src": "6163:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4135:3:12" + "src": "6148:3:12" }, "nodeType": "YulFunctionCall", - "src": "4135:22:12" + "src": "6148:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4159:7:12" + "src": "6172:7:12" } ], "functionName": { "name": "abi_decode_t_bytes32", "nodeType": "YulIdentifier", - "src": "4114:20:12" + "src": "6127:20:12" }, "nodeType": "YulFunctionCall", - "src": "4114:53:12" + "src": "6127:53:12" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "4104:6:12" + "src": "6117:6:12" } ] } @@ -3387,15 +4338,15 @@ }, { "nodeType": "YulBlock", - "src": "4187:118:12", + "src": "6200:118:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "4202:16:12", + "src": "6215:16:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "4216:2:12", + "src": "6229:2:12", "type": "", "value": "32" }, @@ -3403,14 +4354,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "4206:6:12", + "src": "6219:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "4232:63:12", + "src": "6245:63:12", "value": { "arguments": [ { @@ -3418,41 +4369,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "4267:9:12" + "src": "6280:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "4278:6:12" + "src": "6291:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4263:3:12" + "src": "6276:3:12" }, "nodeType": "YulFunctionCall", - "src": "4263:22:12" + "src": "6276:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "4287:7:12" + "src": "6300:7:12" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "4242:20:12" + "src": "6255:20:12" }, "nodeType": "YulFunctionCall", - "src": "4242:53:12" + "src": "6255:53:12" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "4232:6:12" + "src": "6245:6:12" } ] } @@ -3466,13 +4417,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "3883:9:12", + "src": "5896:9:12", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "3894:7:12", + "src": "5907:7:12", "type": "" } ], @@ -3480,22 +4431,22 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "3906:6:12", + "src": "5919:6:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "3914:6:12", + "src": "5927:6:12", "type": "" } ], - "src": "3838:474:12" + "src": "5851:474:12" }, { "body": { "nodeType": "YulBlock", - "src": "4407:28:12", + "src": "6420:28:12", "statements": [ { "expression": { @@ -3503,14 +4454,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4424:1:12", + "src": "6437:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4427:1:12", + "src": "6440:1:12", "type": "", "value": "0" } @@ -3518,24 +4469,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4417:6:12" + "src": "6430:6:12" }, "nodeType": "YulFunctionCall", - "src": "4417:12:12" + "src": "6430:12:12" }, "nodeType": "YulExpressionStatement", - "src": "4417:12:12" + "src": "6430:12:12" } ] }, "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulFunctionDefinition", - "src": "4318:117:12" + "src": "6331:117:12" }, { "body": { "nodeType": "YulBlock", - "src": "4530:28:12", + "src": "6543:28:12", "statements": [ { "expression": { @@ -3543,14 +4494,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4547:1:12", + "src": "6560:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4550:1:12", + "src": "6563:1:12", "type": "", "value": "0" } @@ -3558,24 +4509,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4540:6:12" + "src": "6553:6:12" }, "nodeType": "YulFunctionCall", - "src": "4540:12:12" + "src": "6553:12:12" }, "nodeType": "YulExpressionStatement", - "src": "4540:12:12" + "src": "6553:12:12" } ] }, "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", "nodeType": "YulFunctionDefinition", - "src": "4441:117:12" + "src": "6454:117:12" }, { "body": { "nodeType": "YulBlock", - "src": "4653:28:12", + "src": "6666:28:12", "statements": [ { "expression": { @@ -3583,14 +4534,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "4670:1:12", + "src": "6683:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4673:1:12", + "src": "6686:1:12", "type": "", "value": "0" } @@ -3598,29 +4549,29 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "4663:6:12" + "src": "6676:6:12" }, "nodeType": "YulFunctionCall", - "src": "4663:12:12" + "src": "6676:12:12" }, "nodeType": "YulExpressionStatement", - "src": "4663:12:12" + "src": "6676:12:12" } ] }, "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "nodeType": "YulFunctionDefinition", - "src": "4564:117:12" + "src": "6577:117:12" }, { "body": { "nodeType": "YulBlock", - "src": "4794:478:12", + "src": "6807:478:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "4843:83:12", + "src": "6856:83:12", "statements": [ { "expression": { @@ -3628,13 +4579,13 @@ "functionName": { "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulIdentifier", - "src": "4845:77:12" + "src": "6858:77:12" }, "nodeType": "YulFunctionCall", - "src": "4845:79:12" + "src": "6858:79:12" }, "nodeType": "YulExpressionStatement", - "src": "4845:79:12" + "src": "6858:79:12" } ] }, @@ -3647,12 +4598,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "4822:6:12" + "src": "6835:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4830:4:12", + "src": "6843:4:12", "type": "", "value": "0x1f" } @@ -3660,68 +4611,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "4818:3:12" + "src": "6831:3:12" }, "nodeType": "YulFunctionCall", - "src": "4818:17:12" + "src": "6831:17:12" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "4837:3:12" + "src": "6850:3:12" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "4814:3:12" + "src": "6827:3:12" }, "nodeType": "YulFunctionCall", - "src": "4814:27:12" + "src": "6827:27:12" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "4807:6:12" + "src": "6820:6:12" }, "nodeType": "YulFunctionCall", - "src": "4807:35:12" + "src": "6820:35:12" }, "nodeType": "YulIf", - "src": "4804:122:12" + "src": "6817:122:12" }, { "nodeType": "YulAssignment", - "src": "4935:30:12", + "src": "6948:30:12", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "4958:6:12" + "src": "6971:6:12" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "4945:12:12" + "src": "6958:12:12" }, "nodeType": "YulFunctionCall", - "src": "4945:20:12" + "src": "6958:20:12" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "4935:6:12" + "src": "6948:6:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "5008:83:12", + "src": "7021:83:12", "statements": [ { "expression": { @@ -3729,13 +4680,13 @@ "functionName": { "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", "nodeType": "YulIdentifier", - "src": "5010:77:12" + "src": "7023:77:12" }, "nodeType": "YulFunctionCall", - "src": "5010:79:12" + "src": "7023:79:12" }, "nodeType": "YulExpressionStatement", - "src": "5010:79:12" + "src": "7023:79:12" } ] }, @@ -3744,12 +4695,12 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "4980:6:12" + "src": "6993:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "4988:18:12", + "src": "7001:18:12", "type": "", "value": "0xffffffffffffffff" } @@ -3757,28 +4708,28 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "4977:2:12" + "src": "6990:2:12" }, "nodeType": "YulFunctionCall", - "src": "4977:30:12" + "src": "6990:30:12" }, "nodeType": "YulIf", - "src": "4974:117:12" + "src": "6987:117:12" }, { "nodeType": "YulAssignment", - "src": "5100:29:12", + "src": "7113:29:12", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "5116:6:12" + "src": "7129:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5124:4:12", + "src": "7137:4:12", "type": "", "value": "0x20" } @@ -3786,23 +4737,23 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5112:3:12" + "src": "7125:3:12" }, "nodeType": "YulFunctionCall", - "src": "5112:17:12" + "src": "7125:17:12" }, "variableNames": [ { "name": "arrayPos", "nodeType": "YulIdentifier", - "src": "5100:8:12" + "src": "7113:8:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "5183:83:12", + "src": "7196:83:12", "statements": [ { "expression": { @@ -3810,13 +4761,13 @@ "functionName": { "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "nodeType": "YulIdentifier", - "src": "5185:77:12" + "src": "7198:77:12" }, "nodeType": "YulFunctionCall", - "src": "5185:79:12" + "src": "7198:79:12" }, "nodeType": "YulExpressionStatement", - "src": "5185:79:12" + "src": "7198:79:12" } ] }, @@ -3827,19 +4778,19 @@ { "name": "arrayPos", "nodeType": "YulIdentifier", - "src": "5148:8:12" + "src": "7161:8:12" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "5162:6:12" + "src": "7175:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5170:4:12", + "src": "7183:4:12", "type": "", "value": "0x20" } @@ -3847,36 +4798,36 @@ "functionName": { "name": "mul", "nodeType": "YulIdentifier", - "src": "5158:3:12" + "src": "7171:3:12" }, "nodeType": "YulFunctionCall", - "src": "5158:17:12" + "src": "7171:17:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5144:3:12" + "src": "7157:3:12" }, "nodeType": "YulFunctionCall", - "src": "5144:32:12" + "src": "7157:32:12" }, { "name": "end", "nodeType": "YulIdentifier", - "src": "5178:3:12" + "src": "7191:3:12" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "5141:2:12" + "src": "7154:2:12" }, "nodeType": "YulFunctionCall", - "src": "5141:41:12" + "src": "7154:41:12" }, "nodeType": "YulIf", - "src": "5138:128:12" + "src": "7151:128:12" } ] }, @@ -3886,13 +4837,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "4761:6:12", + "src": "6774:6:12", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "4769:3:12", + "src": "6782:3:12", "type": "" } ], @@ -3900,27 +4851,27 @@ { "name": "arrayPos", "nodeType": "YulTypedName", - "src": "4777:8:12", + "src": "6790:8:12", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "4787:6:12", + "src": "6800:6:12", "type": "" } ], - "src": "4704:568:12" + "src": "6717:568:12" }, { "body": { "nodeType": "YulBlock", - "src": "5396:586:12", + "src": "7409:586:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "5442:83:12", + "src": "7455:83:12", "statements": [ { "expression": { @@ -3928,13 +4879,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "5444:77:12" + "src": "7457:77:12" }, "nodeType": "YulFunctionCall", - "src": "5444:79:12" + "src": "7457:79:12" }, "nodeType": "YulExpressionStatement", - "src": "5444:79:12" + "src": "7457:79:12" } ] }, @@ -3945,26 +4896,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5417:7:12" + "src": "7430:7:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5426:9:12" + "src": "7439:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "5413:3:12" + "src": "7426:3:12" }, "nodeType": "YulFunctionCall", - "src": "5413:23:12" + "src": "7426:23:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5438:2:12", + "src": "7451:2:12", "type": "", "value": "64" } @@ -3972,25 +4923,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "5409:3:12" + "src": "7422:3:12" }, "nodeType": "YulFunctionCall", - "src": "5409:32:12" + "src": "7422:32:12" }, "nodeType": "YulIf", - "src": "5406:119:12" + "src": "7419:119:12" }, { "nodeType": "YulBlock", - "src": "5535:117:12", + "src": "7548:117:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5550:15:12", + "src": "7563:15:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "5564:1:12", + "src": "7577:1:12", "type": "", "value": "0" }, @@ -3998,14 +4949,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "5554:6:12", + "src": "7567:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "5579:63:12", + "src": "7592:63:12", "value": { "arguments": [ { @@ -4013,41 +4964,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5614:9:12" + "src": "7627:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "5625:6:12" + "src": "7638:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5610:3:12" + "src": "7623:3:12" }, "nodeType": "YulFunctionCall", - "src": "5610:22:12" + "src": "7623:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5634:7:12" + "src": "7647:7:12" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "5589:20:12" + "src": "7602:20:12" }, "nodeType": "YulFunctionCall", - "src": "5589:53:12" + "src": "7602:53:12" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "5579:6:12" + "src": "7592:6:12" } ] } @@ -4055,11 +5006,11 @@ }, { "nodeType": "YulBlock", - "src": "5662:313:12", + "src": "7675:313:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "5677:46:12", + "src": "7690:46:12", "value": { "arguments": [ { @@ -4067,12 +5018,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5708:9:12" + "src": "7721:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5719:2:12", + "src": "7732:2:12", "type": "", "value": "32" } @@ -4080,25 +5031,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5704:3:12" + "src": "7717:3:12" }, "nodeType": "YulFunctionCall", - "src": "5704:18:12" + "src": "7717:18:12" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "5691:12:12" + "src": "7704:12:12" }, "nodeType": "YulFunctionCall", - "src": "5691:32:12" + "src": "7704:32:12" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "5681:6:12", + "src": "7694:6:12", "type": "" } ] @@ -4106,7 +5057,7 @@ { "body": { "nodeType": "YulBlock", - "src": "5770:83:12", + "src": "7783:83:12", "statements": [ { "expression": { @@ -4114,13 +5065,13 @@ "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulIdentifier", - "src": "5772:77:12" + "src": "7785:77:12" }, "nodeType": "YulFunctionCall", - "src": "5772:79:12" + "src": "7785:79:12" }, "nodeType": "YulExpressionStatement", - "src": "5772:79:12" + "src": "7785:79:12" } ] }, @@ -4129,12 +5080,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "5742:6:12" + "src": "7755:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "5750:18:12", + "src": "7763:18:12", "type": "", "value": "0xffffffffffffffff" } @@ -4142,17 +5093,17 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "5739:2:12" + "src": "7752:2:12" }, "nodeType": "YulFunctionCall", - "src": "5739:30:12" + "src": "7752:30:12" }, "nodeType": "YulIf", - "src": "5736:117:12" + "src": "7749:117:12" }, { "nodeType": "YulAssignment", - "src": "5867:98:12", + "src": "7880:98:12", "value": { "arguments": [ { @@ -4160,46 +5111,46 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "5937:9:12" + "src": "7950:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "5948:6:12" + "src": "7961:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "5933:3:12" + "src": "7946:3:12" }, "nodeType": "YulFunctionCall", - "src": "5933:22:12" + "src": "7946:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "5957:7:12" + "src": "7970:7:12" } ], "functionName": { "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", "nodeType": "YulIdentifier", - "src": "5885:47:12" + "src": "7898:47:12" }, "nodeType": "YulFunctionCall", - "src": "5885:80:12" + "src": "7898:80:12" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "5867:6:12" + "src": "7880:6:12" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "5875:6:12" + "src": "7888:6:12" } ] } @@ -4213,13 +5164,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "5350:9:12", + "src": "7363:9:12", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "5361:7:12", + "src": "7374:7:12", "type": "" } ], @@ -4227,42 +5178,42 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "5373:6:12", + "src": "7386:6:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "5381:6:12", + "src": "7394:6:12", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "5389:6:12", + "src": "7402:6:12", "type": "" } ], - "src": "5278:704:12" + "src": "7291:704:12" }, { "body": { "nodeType": "YulBlock", - "src": "6020:28:12", + "src": "8033:28:12", "statements": [ { "nodeType": "YulAssignment", - "src": "6030:12:12", + "src": "8043:12:12", "value": { "name": "value", "nodeType": "YulIdentifier", - "src": "6037:5:12" + "src": "8050:5:12" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "6030:3:12" + "src": "8043:3:12" } ] } @@ -4274,7 +5225,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "6006:5:12", + "src": "8019:5:12", "type": "" } ], @@ -4282,20 +5233,20 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "6016:3:12", + "src": "8029:3:12", "type": "" } ], - "src": "5988:60:12" + "src": "8001:60:12" }, { "body": { "nodeType": "YulBlock", - "src": "6114:82:12", + "src": "8127:82:12", "statements": [ { "nodeType": "YulAssignment", - "src": "6124:66:12", + "src": "8137:66:12", "value": { "arguments": [ { @@ -4305,40 +5256,40 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "6182:5:12" + "src": "8195:5:12" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "6164:17:12" + "src": "8177:17:12" }, "nodeType": "YulFunctionCall", - "src": "6164:24:12" + "src": "8177:24:12" } ], "functionName": { "name": "identity", "nodeType": "YulIdentifier", - "src": "6155:8:12" + "src": "8168:8:12" }, "nodeType": "YulFunctionCall", - "src": "6155:34:12" + "src": "8168:34:12" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", - "src": "6137:17:12" + "src": "8150:17:12" }, "nodeType": "YulFunctionCall", - "src": "6137:53:12" + "src": "8150:53:12" }, "variableNames": [ { "name": "converted", "nodeType": "YulIdentifier", - "src": "6124:9:12" + "src": "8137:9:12" } ] } @@ -4350,7 +5301,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "6094:5:12", + "src": "8107:5:12", "type": "" } ], @@ -4358,41 +5309,41 @@ { "name": "converted", "nodeType": "YulTypedName", - "src": "6104:9:12", + "src": "8117:9:12", "type": "" } ], - "src": "6054:142:12" + "src": "8067:142:12" }, { "body": { "nodeType": "YulBlock", - "src": "6262:66:12", + "src": "8275:66:12", "statements": [ { "nodeType": "YulAssignment", - "src": "6272:50:12", + "src": "8285:50:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "6316:5:12" + "src": "8329:5:12" } ], "functionName": { "name": "convert_t_uint160_to_t_uint160", "nodeType": "YulIdentifier", - "src": "6285:30:12" + "src": "8298:30:12" }, "nodeType": "YulFunctionCall", - "src": "6285:37:12" + "src": "8298:37:12" }, "variableNames": [ { "name": "converted", "nodeType": "YulIdentifier", - "src": "6272:9:12" + "src": "8285:9:12" } ] } @@ -4404,7 +5355,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "6242:5:12", + "src": "8255:5:12", "type": "" } ], @@ -4412,41 +5363,41 @@ { "name": "converted", "nodeType": "YulTypedName", - "src": "6252:9:12", + "src": "8265:9:12", "type": "" } ], - "src": "6202:126:12" + "src": "8215:126:12" }, { "body": { "nodeType": "YulBlock", - "src": "6412:66:12", + "src": "8425:66:12", "statements": [ { "nodeType": "YulAssignment", - "src": "6422:50:12", + "src": "8435:50:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "6466:5:12" + "src": "8479:5:12" } ], "functionName": { "name": "convert_t_uint160_to_t_address", "nodeType": "YulIdentifier", - "src": "6435:30:12" + "src": "8448:30:12" }, "nodeType": "YulFunctionCall", - "src": "6435:37:12" + "src": "8448:37:12" }, "variableNames": [ { "name": "converted", "nodeType": "YulIdentifier", - "src": "6422:9:12" + "src": "8435:9:12" } ] } @@ -4458,7 +5409,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "6392:5:12", + "src": "8405:5:12", "type": "" } ], @@ -4466,16 +5417,16 @@ { "name": "converted", "nodeType": "YulTypedName", - "src": "6402:9:12", + "src": "8415:9:12", "type": "" } ], - "src": "6334:144:12" + "src": "8347:144:12" }, { "body": { "nodeType": "YulBlock", - "src": "6567:84:12", + "src": "8580:84:12", "statements": [ { "expression": { @@ -4483,35 +5434,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "6584:3:12" + "src": "8597:3:12" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "6638:5:12" + "src": "8651:5:12" } ], "functionName": { "name": "convert_t_contract$_IBEERC721_$1549_to_t_address", "nodeType": "YulIdentifier", - "src": "6589:48:12" + "src": "8602:48:12" }, "nodeType": "YulFunctionCall", - "src": "6589:55:12" + "src": "8602:55:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6577:6:12" + "src": "8590:6:12" }, "nodeType": "YulFunctionCall", - "src": "6577:68:12" + "src": "8590:68:12" }, "nodeType": "YulExpressionStatement", - "src": "6577:68:12" + "src": "8590:68:12" } ] }, @@ -4521,37 +5472,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "6555:5:12", + "src": "8568:5:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "6562:3:12", + "src": "8575:3:12", "type": "" } ], - "src": "6484:167:12" + "src": "8497:167:12" }, { "body": { "nodeType": "YulBlock", - "src": "6773:142:12", + "src": "8786:142:12", "statements": [ { "nodeType": "YulAssignment", - "src": "6783:26:12", + "src": "8796:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6795:9:12" + "src": "8808:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6806:2:12", + "src": "8819:2:12", "type": "", "value": "32" } @@ -4559,16 +5510,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6791:3:12" + "src": "8804:3:12" }, "nodeType": "YulFunctionCall", - "src": "6791:18:12" + "src": "8804:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "6783:4:12" + "src": "8796:4:12" } ] }, @@ -4578,19 +5529,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "6881:6:12" + "src": "8894:6:12" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "6894:9:12" + "src": "8907:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6905:1:12", + "src": "8918:1:12", "type": "", "value": "0" } @@ -4598,22 +5549,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6890:3:12" + "src": "8903:3:12" }, "nodeType": "YulFunctionCall", - "src": "6890:17:12" + "src": "8903:17:12" } ], "functionName": { "name": "abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "6819:61:12" + "src": "8832:61:12" }, "nodeType": "YulFunctionCall", - "src": "6819:89:12" + "src": "8832:89:12" }, "nodeType": "YulExpressionStatement", - "src": "6819:89:12" + "src": "8832:89:12" } ] }, @@ -4623,13 +5574,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "6745:9:12", + "src": "8758:9:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "6757:6:12", + "src": "8770:6:12", "type": "" } ], @@ -4637,16 +5588,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "6768:4:12", + "src": "8781:4:12", "type": "" } ], - "src": "6657:258:12" + "src": "8670:258:12" }, { "body": { "nodeType": "YulBlock", - "src": "6986:53:12", + "src": "8999:53:12", "statements": [ { "expression": { @@ -4654,35 +5605,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "7003:3:12" + "src": "9016:3:12" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "7026:5:12" + "src": "9039:5:12" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "7008:17:12" + "src": "9021:17:12" }, "nodeType": "YulFunctionCall", - "src": "7008:24:12" + "src": "9021:24:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6996:6:12" + "src": "9009:6:12" }, "nodeType": "YulFunctionCall", - "src": "6996:37:12" + "src": "9009:37:12" }, "nodeType": "YulExpressionStatement", - "src": "6996:37:12" + "src": "9009:37:12" } ] }, @@ -4692,37 +5643,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "6974:5:12", + "src": "8987:5:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "6981:3:12", + "src": "8994:3:12", "type": "" } ], - "src": "6921:118:12" + "src": "8934:118:12" }, { "body": { "nodeType": "YulBlock", - "src": "7143:124:12", + "src": "9156:124:12", "statements": [ { "nodeType": "YulAssignment", - "src": "7153:26:12", + "src": "9166:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7165:9:12" + "src": "9178:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7176:2:12", + "src": "9189:2:12", "type": "", "value": "32" } @@ -4730,16 +5681,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7161:3:12" + "src": "9174:3:12" }, "nodeType": "YulFunctionCall", - "src": "7161:18:12" + "src": "9174:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "7153:4:12" + "src": "9166:4:12" } ] }, @@ -4749,19 +5700,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "7233:6:12" + "src": "9246:6:12" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7246:9:12" + "src": "9259:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7257:1:12", + "src": "9270:1:12", "type": "", "value": "0" } @@ -4769,22 +5720,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7242:3:12" + "src": "9255:3:12" }, "nodeType": "YulFunctionCall", - "src": "7242:17:12" + "src": "9255:17:12" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "7189:43:12" + "src": "9202:43:12" }, "nodeType": "YulFunctionCall", - "src": "7189:71:12" + "src": "9202:71:12" }, "nodeType": "YulExpressionStatement", - "src": "7189:71:12" + "src": "9202:71:12" } ] }, @@ -4794,13 +5745,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "7115:9:12", + "src": "9128:9:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "7127:6:12", + "src": "9140:6:12", "type": "" } ], @@ -4808,21 +5759,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "7138:4:12", + "src": "9151:4:12", "type": "" } ], - "src": "7045:222:12" + "src": "9058:222:12" }, { "body": { "nodeType": "YulBlock", - "src": "7316:79:12", + "src": "9329:79:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "7373:16:12", + "src": "9386:16:12", "statements": [ { "expression": { @@ -4830,14 +5781,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "7382:1:12", + "src": "9395:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7385:1:12", + "src": "9398:1:12", "type": "", "value": "0" } @@ -4845,13 +5796,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "7375:6:12" + "src": "9388:6:12" }, "nodeType": "YulFunctionCall", - "src": "7375:12:12" + "src": "9388:12:12" }, "nodeType": "YulExpressionStatement", - "src": "7375:12:12" + "src": "9388:12:12" } ] }, @@ -4862,44 +5813,44 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "7339:5:12" + "src": "9352:5:12" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "7364:5:12" + "src": "9377:5:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "7346:17:12" + "src": "9359:17:12" }, "nodeType": "YulFunctionCall", - "src": "7346:24:12" + "src": "9359:24:12" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "7336:2:12" + "src": "9349:2:12" }, "nodeType": "YulFunctionCall", - "src": "7336:35:12" + "src": "9349:35:12" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "7329:6:12" + "src": "9342:6:12" }, "nodeType": "YulFunctionCall", - "src": "7329:43:12" + "src": "9342:43:12" }, "nodeType": "YulIf", - "src": "7326:63:12" + "src": "9339:63:12" } ] }, @@ -4909,41 +5860,41 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "7309:5:12", + "src": "9322:5:12", "type": "" } ], - "src": "7273:122:12" + "src": "9286:122:12" }, { "body": { "nodeType": "YulBlock", - "src": "7453:87:12", + "src": "9466:87:12", "statements": [ { "nodeType": "YulAssignment", - "src": "7463:29:12", + "src": "9476:29:12", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "7485:6:12" + "src": "9498:6:12" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", - "src": "7472:12:12" + "src": "9485:12:12" }, "nodeType": "YulFunctionCall", - "src": "7472:20:12" + "src": "9485:20:12" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "7463:5:12" + "src": "9476:5:12" } ] }, @@ -4953,19 +5904,19 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "7528:5:12" + "src": "9541:5:12" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", - "src": "7501:26:12" + "src": "9514:26:12" }, "nodeType": "YulFunctionCall", - "src": "7501:33:12" + "src": "9514:33:12" }, "nodeType": "YulExpressionStatement", - "src": "7501:33:12" + "src": "9514:33:12" } ] }, @@ -4975,13 +5926,13 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "7431:6:12", + "src": "9444:6:12", "type": "" }, { "name": "end", "nodeType": "YulTypedName", - "src": "7439:3:12", + "src": "9452:3:12", "type": "" } ], @@ -4989,21 +5940,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "7447:5:12", + "src": "9460:5:12", "type": "" } ], - "src": "7401:139:12" + "src": "9414:139:12" }, { "body": { "nodeType": "YulBlock", - "src": "7629:391:12", + "src": "9642:391:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "7675:83:12", + "src": "9688:83:12", "statements": [ { "expression": { @@ -5011,13 +5962,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "7677:77:12" + "src": "9690:77:12" }, "nodeType": "YulFunctionCall", - "src": "7677:79:12" + "src": "9690:79:12" }, "nodeType": "YulExpressionStatement", - "src": "7677:79:12" + "src": "9690:79:12" } ] }, @@ -5028,26 +5979,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7650:7:12" + "src": "9663:7:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7659:9:12" + "src": "9672:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "7646:3:12" + "src": "9659:3:12" }, "nodeType": "YulFunctionCall", - "src": "7646:23:12" + "src": "9659:23:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7671:2:12", + "src": "9684:2:12", "type": "", "value": "64" } @@ -5055,25 +6006,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "7642:3:12" + "src": "9655:3:12" }, "nodeType": "YulFunctionCall", - "src": "7642:32:12" + "src": "9655:32:12" }, "nodeType": "YulIf", - "src": "7639:119:12" + "src": "9652:119:12" }, { "nodeType": "YulBlock", - "src": "7768:117:12", + "src": "9781:117:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7783:15:12", + "src": "9796:15:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7797:1:12", + "src": "9810:1:12", "type": "", "value": "0" }, @@ -5081,14 +6032,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "7787:6:12", + "src": "9800:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "7812:63:12", + "src": "9825:63:12", "value": { "arguments": [ { @@ -5096,41 +6047,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7847:9:12" + "src": "9860:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "7858:6:12" + "src": "9871:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7843:3:12" + "src": "9856:3:12" }, "nodeType": "YulFunctionCall", - "src": "7843:22:12" + "src": "9856:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7867:7:12" + "src": "9880:7:12" } ], "functionName": { "name": "abi_decode_t_bytes32", "nodeType": "YulIdentifier", - "src": "7822:20:12" + "src": "9835:20:12" }, "nodeType": "YulFunctionCall", - "src": "7822:53:12" + "src": "9835:53:12" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "7812:6:12" + "src": "9825:6:12" } ] } @@ -5138,15 +6089,15 @@ }, { "nodeType": "YulBlock", - "src": "7895:118:12", + "src": "9908:118:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "7910:16:12", + "src": "9923:16:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "7924:2:12", + "src": "9937:2:12", "type": "", "value": "32" }, @@ -5154,14 +6105,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "7914:6:12", + "src": "9927:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "7940:63:12", + "src": "9953:63:12", "value": { "arguments": [ { @@ -5169,41 +6120,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "7975:9:12" + "src": "9988:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "7986:6:12" + "src": "9999:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7971:3:12" + "src": "9984:3:12" }, "nodeType": "YulFunctionCall", - "src": "7971:22:12" + "src": "9984:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "7995:7:12" + "src": "10008:7:12" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "7950:20:12" + "src": "9963:20:12" }, "nodeType": "YulFunctionCall", - "src": "7950:53:12" + "src": "9963:53:12" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "7940:6:12" + "src": "9953:6:12" } ] } @@ -5217,13 +6168,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "7591:9:12", + "src": "9604:9:12", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "7602:7:12", + "src": "9615:7:12", "type": "" } ], @@ -5231,27 +6182,27 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "7614:6:12", + "src": "9627:6:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "7622:6:12", + "src": "9635:6:12", "type": "" } ], - "src": "7546:474:12" + "src": "9559:474:12" }, { "body": { "nodeType": "YulBlock", - "src": "8109:391:12", + "src": "10122:391:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "8155:83:12", + "src": "10168:83:12", "statements": [ { "expression": { @@ -5259,13 +6210,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "8157:77:12" + "src": "10170:77:12" }, "nodeType": "YulFunctionCall", - "src": "8157:79:12" + "src": "10170:79:12" }, "nodeType": "YulExpressionStatement", - "src": "8157:79:12" + "src": "10170:79:12" } ] }, @@ -5276,26 +6227,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8130:7:12" + "src": "10143:7:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8139:9:12" + "src": "10152:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "8126:3:12" + "src": "10139:3:12" }, "nodeType": "YulFunctionCall", - "src": "8126:23:12" + "src": "10139:23:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8151:2:12", + "src": "10164:2:12", "type": "", "value": "64" } @@ -5303,25 +6254,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "8122:3:12" + "src": "10135:3:12" }, "nodeType": "YulFunctionCall", - "src": "8122:32:12" + "src": "10135:32:12" }, "nodeType": "YulIf", - "src": "8119:119:12" + "src": "10132:119:12" }, { "nodeType": "YulBlock", - "src": "8248:117:12", + "src": "10261:117:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "8263:15:12", + "src": "10276:15:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "8277:1:12", + "src": "10290:1:12", "type": "", "value": "0" }, @@ -5329,14 +6280,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "8267:6:12", + "src": "10280:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "8292:63:12", + "src": "10305:63:12", "value": { "arguments": [ { @@ -5344,41 +6295,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8327:9:12" + "src": "10340:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "8338:6:12" + "src": "10351:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8323:3:12" + "src": "10336:3:12" }, "nodeType": "YulFunctionCall", - "src": "8323:22:12" + "src": "10336:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8347:7:12" + "src": "10360:7:12" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", - "src": "8302:20:12" + "src": "10315:20:12" }, "nodeType": "YulFunctionCall", - "src": "8302:53:12" + "src": "10315:53:12" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "8292:6:12" + "src": "10305:6:12" } ] } @@ -5386,15 +6337,15 @@ }, { "nodeType": "YulBlock", - "src": "8375:118:12", + "src": "10388:118:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "8390:16:12", + "src": "10403:16:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "8404:2:12", + "src": "10417:2:12", "type": "", "value": "32" }, @@ -5402,14 +6353,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "8394:6:12", + "src": "10407:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "8420:63:12", + "src": "10433:63:12", "value": { "arguments": [ { @@ -5417,41 +6368,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8455:9:12" + "src": "10468:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "8466:6:12" + "src": "10479:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8451:3:12" + "src": "10464:3:12" }, "nodeType": "YulFunctionCall", - "src": "8451:22:12" + "src": "10464:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8475:7:12" + "src": "10488:7:12" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "8430:20:12" + "src": "10443:20:12" }, "nodeType": "YulFunctionCall", - "src": "8430:53:12" + "src": "10443:53:12" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "8420:6:12" + "src": "10433:6:12" } ] } @@ -5465,13 +6416,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8071:9:12", + "src": "10084:9:12", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "8082:7:12", + "src": "10095:7:12", "type": "" } ], @@ -5479,27 +6430,27 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "8094:6:12", + "src": "10107:6:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "8102:6:12", + "src": "10115:6:12", "type": "" } ], - "src": "8026:474:12" + "src": "10039:474:12" }, { "body": { "nodeType": "YulBlock", - "src": "8572:263:12", + "src": "10585:263:12", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "8618:83:12", + "src": "10631:83:12", "statements": [ { "expression": { @@ -5507,13 +6458,13 @@ "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", - "src": "8620:77:12" + "src": "10633:77:12" }, "nodeType": "YulFunctionCall", - "src": "8620:79:12" + "src": "10633:79:12" }, "nodeType": "YulExpressionStatement", - "src": "8620:79:12" + "src": "10633:79:12" } ] }, @@ -5524,26 +6475,26 @@ { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8593:7:12" + "src": "10606:7:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8602:9:12" + "src": "10615:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "8589:3:12" + "src": "10602:3:12" }, "nodeType": "YulFunctionCall", - "src": "8589:23:12" + "src": "10602:23:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8614:2:12", + "src": "10627:2:12", "type": "", "value": "32" } @@ -5551,25 +6502,25 @@ "functionName": { "name": "slt", "nodeType": "YulIdentifier", - "src": "8585:3:12" + "src": "10598:3:12" }, "nodeType": "YulFunctionCall", - "src": "8585:32:12" + "src": "10598:32:12" }, "nodeType": "YulIf", - "src": "8582:119:12" + "src": "10595:119:12" }, { "nodeType": "YulBlock", - "src": "8711:117:12", + "src": "10724:117:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "8726:15:12", + "src": "10739:15:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "8740:1:12", + "src": "10753:1:12", "type": "", "value": "0" }, @@ -5577,14 +6528,14 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "8730:6:12", + "src": "10743:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "8755:63:12", + "src": "10768:63:12", "value": { "arguments": [ { @@ -5592,41 +6543,41 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "8790:9:12" + "src": "10803:9:12" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "8801:6:12" + "src": "10814:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "8786:3:12" + "src": "10799:3:12" }, "nodeType": "YulFunctionCall", - "src": "8786:22:12" + "src": "10799:22:12" }, { "name": "dataEnd", "nodeType": "YulIdentifier", - "src": "8810:7:12" + "src": "10823:7:12" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", - "src": "8765:20:12" + "src": "10778:20:12" }, "nodeType": "YulFunctionCall", - "src": "8765:53:12" + "src": "10778:53:12" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "8755:6:12" + "src": "10768:6:12" } ] } @@ -5640,13 +6591,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "8542:9:12", + "src": "10555:9:12", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", - "src": "8553:7:12", + "src": "10566:7:12", "type": "" } ], @@ -5654,16 +6605,16 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "8565:6:12", + "src": "10578:6:12", "type": "" } ], - "src": "8506:329:12" + "src": "10519:329:12" }, { "body": { "nodeType": "YulBlock", - "src": "8869:152:12", + "src": "10882:152:12", "statements": [ { "expression": { @@ -5671,14 +6622,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "8886:1:12", + "src": "10899:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8889:77:12", + "src": "10902:77:12", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -5686,13 +6637,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8879:6:12" + "src": "10892:6:12" }, "nodeType": "YulFunctionCall", - "src": "8879:88:12" + "src": "10892:88:12" }, "nodeType": "YulExpressionStatement", - "src": "8879:88:12" + "src": "10892:88:12" }, { "expression": { @@ -5700,14 +6651,112 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "8983:1:12", + "src": "10996:1:12", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "8986:4:12", + "src": "10999:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10989:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10989:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10989:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11020:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11023:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11013:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11013:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11013:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "10854:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11068:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11085:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11088:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11078:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11078:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11078:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11182:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11185:4:12", "type": "", "value": "0x32" } @@ -5715,13 +6764,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "8976:6:12" + "src": "11175:6:12" }, "nodeType": "YulFunctionCall", - "src": "8976:15:12" + "src": "11175:15:12" }, "nodeType": "YulExpressionStatement", - "src": "8976:15:12" + "src": "11175:15:12" }, { "expression": { @@ -5729,14 +6778,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9007:1:12", + "src": "11206:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9010:4:12", + "src": "11209:4:12", "type": "", "value": "0x24" } @@ -5744,24 +6793,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "9000:6:12" + "src": "11199:6:12" }, "nodeType": "YulFunctionCall", - "src": "9000:15:12" + "src": "11199:15:12" }, "nodeType": "YulExpressionStatement", - "src": "9000:15:12" + "src": "11199:15:12" } ] }, "name": "panic_error_0x32", "nodeType": "YulFunctionDefinition", - "src": "8841:180:12" + "src": "11040:180:12" }, { "body": { "nodeType": "YulBlock", - "src": "9055:152:12", + "src": "11254:152:12", "statements": [ { "expression": { @@ -5769,14 +6818,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9072:1:12", + "src": "11271:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9075:77:12", + "src": "11274:77:12", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -5784,13 +6833,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9065:6:12" + "src": "11264:6:12" }, "nodeType": "YulFunctionCall", - "src": "9065:88:12" + "src": "11264:88:12" }, "nodeType": "YulExpressionStatement", - "src": "9065:88:12" + "src": "11264:88:12" }, { "expression": { @@ -5798,14 +6847,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9169:1:12", + "src": "11368:1:12", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9172:4:12", + "src": "11371:4:12", "type": "", "value": "0x11" } @@ -5813,13 +6862,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9162:6:12" + "src": "11361:6:12" }, "nodeType": "YulFunctionCall", - "src": "9162:15:12" + "src": "11361:15:12" }, "nodeType": "YulExpressionStatement", - "src": "9162:15:12" + "src": "11361:15:12" }, { "expression": { @@ -5827,14 +6876,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "9193:1:12", + "src": "11392:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9196:4:12", + "src": "11395:4:12", "type": "", "value": "0x24" } @@ -5842,56 +6891,56 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "9186:6:12" + "src": "11385:6:12" }, "nodeType": "YulFunctionCall", - "src": "9186:15:12" + "src": "11385:15:12" }, "nodeType": "YulExpressionStatement", - "src": "9186:15:12" + "src": "11385:15:12" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", - "src": "9027:180:12" + "src": "11226:180:12" }, { "body": { "nodeType": "YulBlock", - "src": "9256:190:12", + "src": "11455:190:12", "statements": [ { "nodeType": "YulAssignment", - "src": "9266:33:12", + "src": "11465:33:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "9293:5:12" + "src": "11492:5:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "9275:17:12" + "src": "11474:17:12" }, "nodeType": "YulFunctionCall", - "src": "9275:24:12" + "src": "11474:24:12" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "9266:5:12" + "src": "11465:5:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "9389:22:12", + "src": "11588:22:12", "statements": [ { "expression": { @@ -5899,13 +6948,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "9391:16:12" + "src": "11590:16:12" }, "nodeType": "YulFunctionCall", - "src": "9391:18:12" + "src": "11590:18:12" }, "nodeType": "YulExpressionStatement", - "src": "9391:18:12" + "src": "11590:18:12" } ] }, @@ -5914,12 +6963,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "9314:5:12" + "src": "11513:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9321:66:12", + "src": "11520:66:12", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } @@ -5927,28 +6976,28 @@ "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "9311:2:12" + "src": "11510:2:12" }, "nodeType": "YulFunctionCall", - "src": "9311:77:12" + "src": "11510:77:12" }, "nodeType": "YulIf", - "src": "9308:103:12" + "src": "11507:103:12" }, { "nodeType": "YulAssignment", - "src": "9420:20:12", + "src": "11619:20:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "9431:5:12" + "src": "11630:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9438:1:12", + "src": "11637:1:12", "type": "", "value": "1" } @@ -5956,16 +7005,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9427:3:12" + "src": "11626:3:12" }, "nodeType": "YulFunctionCall", - "src": "9427:13:12" + "src": "11626:13:12" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "9420:3:12" + "src": "11619:3:12" } ] } @@ -5977,7 +7026,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "9242:5:12", + "src": "11441:5:12", "type": "" } ], @@ -5985,16 +7034,16 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "9252:3:12", + "src": "11451:3:12", "type": "" } ], - "src": "9213:233:12" + "src": "11412:233:12" }, { "body": { "nodeType": "YulBlock", - "src": "9548:73:12", + "src": "11747:73:12", "statements": [ { "expression": { @@ -6002,39 +7051,39 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "9565:3:12" + "src": "11764:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "9570:6:12" + "src": "11769:6:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9558:6:12" + "src": "11757:6:12" }, "nodeType": "YulFunctionCall", - "src": "9558:19:12" + "src": "11757:19:12" }, "nodeType": "YulExpressionStatement", - "src": "9558:19:12" + "src": "11757:19:12" }, { "nodeType": "YulAssignment", - "src": "9586:29:12", + "src": "11785:29:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "9605:3:12" + "src": "11804:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9610:4:12", + "src": "11809:4:12", "type": "", "value": "0x20" } @@ -6042,16 +7091,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9601:3:12" + "src": "11800:3:12" }, "nodeType": "YulFunctionCall", - "src": "9601:14:12" + "src": "11800:14:12" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "9586:11:12" + "src": "11785:11:12" } ] } @@ -6063,13 +7112,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "9520:3:12", + "src": "11719:3:12", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "9525:6:12", + "src": "11724:6:12", "type": "" } ], @@ -6077,16 +7126,16 @@ { "name": "updated_pos", "nodeType": "YulTypedName", - "src": "9536:11:12", + "src": "11735:11:12", "type": "" } ], - "src": "9452:169:12" + "src": "11651:169:12" }, { "body": { "nodeType": "YulBlock", - "src": "9733:72:12", + "src": "11932:72:12", "statements": [ { "expression": { @@ -6096,12 +7145,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "9755:6:12" + "src": "11954:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "9763:1:12", + "src": "11962:1:12", "type": "", "value": "0" } @@ -6109,16 +7158,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "9751:3:12" + "src": "11950:3:12" }, "nodeType": "YulFunctionCall", - "src": "9751:14:12" + "src": "11950:14:12" }, { "hexValue": "4d696e7461626c6520636f756e74206973206e6f7420656e6f756768", "kind": "string", "nodeType": "YulLiteral", - "src": "9767:30:12", + "src": "11966:30:12", "type": "", "value": "Mintable count is not enough" } @@ -6126,13 +7175,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "9744:6:12" + "src": "11943:6:12" }, "nodeType": "YulFunctionCall", - "src": "9744:54:12" + "src": "11943:54:12" }, "nodeType": "YulExpressionStatement", - "src": "9744:54:12" + "src": "11943:54:12" } ] }, @@ -6142,31 +7191,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "9725:6:12", + "src": "11924:6:12", "type": "" } ], - "src": "9627:178:12" + "src": "11826:178:12" }, { "body": { "nodeType": "YulBlock", - "src": "9957:220:12", + "src": "12156:220:12", "statements": [ { "nodeType": "YulAssignment", - "src": "9967:74:12", + "src": "12166:74:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "10033:3:12" + "src": "12232:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10038:2:12", + "src": "12237:2:12", "type": "", "value": "28" } @@ -6174,16 +7223,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "9974:58:12" + "src": "12173:58:12" }, "nodeType": "YulFunctionCall", - "src": "9974:67:12" + "src": "12173:67:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "9967:3:12" + "src": "12166:3:12" } ] }, @@ -6193,34 +7242,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "10139:3:12" + "src": "12338:3:12" } ], "functionName": { "name": "store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08", "nodeType": "YulIdentifier", - "src": "10050:88:12" + "src": "12249:88:12" }, "nodeType": "YulFunctionCall", - "src": "10050:93:12" + "src": "12249:93:12" }, "nodeType": "YulExpressionStatement", - "src": "10050:93:12" + "src": "12249:93:12" }, { "nodeType": "YulAssignment", - "src": "10152:19:12", + "src": "12351:19:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "10163:3:12" + "src": "12362:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10168:2:12", + "src": "12367:2:12", "type": "", "value": "32" } @@ -6228,16 +7277,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10159:3:12" + "src": "12358:3:12" }, "nodeType": "YulFunctionCall", - "src": "10159:12:12" + "src": "12358:12:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "10152:3:12" + "src": "12351:3:12" } ] } @@ -6249,7 +7298,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "9945:3:12", + "src": "12144:3:12", "type": "" } ], @@ -6257,31 +7306,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "9953:3:12", + "src": "12152:3:12", "type": "" } ], - "src": "9811:366:12" + "src": "12010:366:12" }, { "body": { "nodeType": "YulBlock", - "src": "10354:248:12", + "src": "12553:248:12", "statements": [ { "nodeType": "YulAssignment", - "src": "10364:26:12", + "src": "12563:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10376:9:12" + "src": "12575:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10387:2:12", + "src": "12586:2:12", "type": "", "value": "32" } @@ -6289,16 +7338,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10372:3:12" + "src": "12571:3:12" }, "nodeType": "YulFunctionCall", - "src": "10372:18:12" + "src": "12571:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10364:4:12" + "src": "12563:4:12" } ] }, @@ -6310,12 +7359,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10411:9:12" + "src": "12610:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10422:1:12", + "src": "12621:1:12", "type": "", "value": "0" } @@ -6323,68 +7372,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10407:3:12" + "src": "12606:3:12" }, "nodeType": "YulFunctionCall", - "src": "10407:17:12" + "src": "12606:17:12" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10430:4:12" + "src": "12629:4:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10436:9:12" + "src": "12635:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "10426:3:12" + "src": "12625:3:12" }, "nodeType": "YulFunctionCall", - "src": "10426:20:12" + "src": "12625:20:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "10400:6:12" + "src": "12599:6:12" }, "nodeType": "YulFunctionCall", - "src": "10400:47:12" + "src": "12599:47:12" }, "nodeType": "YulExpressionStatement", - "src": "10400:47:12" + "src": "12599:47:12" }, { "nodeType": "YulAssignment", - "src": "10456:139:12", + "src": "12655:139:12", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10590:4:12" + "src": "12789:4:12" } ], "functionName": { "name": "abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "10464:124:12" + "src": "12663:124:12" }, "nodeType": "YulFunctionCall", - "src": "10464:131:12" + "src": "12663:131:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10456:4:12" + "src": "12655:4:12" } ] } @@ -6396,7 +7445,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "10334:9:12", + "src": "12533:9:12", "type": "" } ], @@ -6404,129 +7453,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "10349:4:12", + "src": "12548:4:12", "type": "" } ], - "src": "10183:419:12" + "src": "12382:419:12" }, { "body": { "nodeType": "YulBlock", - "src": "10636:152:12", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10653:1:12", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10656:77:12", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10646:6:12" - }, - "nodeType": "YulFunctionCall", - "src": "10646:88:12" - }, - "nodeType": "YulExpressionStatement", - "src": "10646:88:12" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10750:1:12", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10753:4:12", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "10743:6:12" - }, - "nodeType": "YulFunctionCall", - "src": "10743:15:12" - }, - "nodeType": "YulExpressionStatement", - "src": "10743:15:12" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10774:1:12", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10777:4:12", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "10767:6:12" - }, - "nodeType": "YulFunctionCall", - "src": "10767:15:12" - }, - "nodeType": "YulExpressionStatement", - "src": "10767:15:12" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "10608:180:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10920:206:12", + "src": "12933:206:12", "statements": [ { "nodeType": "YulAssignment", - "src": "10930:26:12", + "src": "12943:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "10942:9:12" + "src": "12955:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10953:2:12", + "src": "12966:2:12", "type": "", "value": "64" } @@ -6534,16 +7485,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10938:3:12" + "src": "12951:3:12" }, "nodeType": "YulFunctionCall", - "src": "10938:18:12" + "src": "12951:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "10930:4:12" + "src": "12943:4:12" } ] }, @@ -6553,19 +7504,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "11010:6:12" + "src": "13023:6:12" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11023:9:12" + "src": "13036:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11034:1:12", + "src": "13047:1:12", "type": "", "value": "0" } @@ -6573,22 +7524,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11019:3:12" + "src": "13032:3:12" }, "nodeType": "YulFunctionCall", - "src": "11019:17:12" + "src": "13032:17:12" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "10966:43:12" + "src": "12979:43:12" }, "nodeType": "YulFunctionCall", - "src": "10966:71:12" + "src": "12979:71:12" }, "nodeType": "YulExpressionStatement", - "src": "10966:71:12" + "src": "12979:71:12" }, { "expression": { @@ -6596,19 +7547,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "11091:6:12" + "src": "13104:6:12" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11104:9:12" + "src": "13117:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11115:2:12", + "src": "13128:2:12", "type": "", "value": "32" } @@ -6616,22 +7567,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11100:3:12" + "src": "13113:3:12" }, "nodeType": "YulFunctionCall", - "src": "11100:18:12" + "src": "13113:18:12" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", - "src": "11047:43:12" + "src": "13060:43:12" }, "nodeType": "YulFunctionCall", - "src": "11047:72:12" + "src": "13060:72:12" }, "nodeType": "YulExpressionStatement", - "src": "11047:72:12" + "src": "13060:72:12" } ] }, @@ -6641,19 +7592,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "10884:9:12", + "src": "12897:9:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "10896:6:12", + "src": "12909:6:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "10904:6:12", + "src": "12917:6:12", "type": "" } ], @@ -6661,790 +7612,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "10915:4:12", + "src": "12928:4:12", "type": "" } ], - "src": "10794:332:12" + "src": "12807:332:12" }, { "body": { "nodeType": "YulBlock", - "src": "11206:40:12", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11217:22:12", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11233:5:12" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "11227:5:12" - }, - "nodeType": "YulFunctionCall", - "src": "11227:12:12" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11217:6:12" - } - ] - } - ] - }, - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "11189:5:12", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "11199:6:12", - "type": "" - } - ], - "src": "11132:114:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11363:73:12", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11380:3:12" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "11385:6:12" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11373:6:12" - }, - "nodeType": "YulFunctionCall", - "src": "11373:19:12" - }, - "nodeType": "YulExpressionStatement", - "src": "11373:19:12" - }, - { - "nodeType": "YulAssignment", - "src": "11401:29:12", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11420:3:12" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11425:4:12", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11416:3:12" - }, - "nodeType": "YulFunctionCall", - "src": "11416:14:12" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "11401:11:12" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "11335:3:12", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "11340:6:12", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "11351:11:12", - "type": "" - } - ], - "src": "11252:184:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11514:60:12", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11524:11:12", - "value": { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "11532:3:12" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "11524:4:12" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11545:22:12", - "value": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "11557:3:12" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11562:4:12", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11553:3:12" - }, - "nodeType": "YulFunctionCall", - "src": "11553:14:12" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "11545:4:12" - } - ] - } - ] - }, - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "11501:3:12", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "11509:4:12", - "type": "" - } - ], - "src": "11442:132:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11635:53:12", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11652:3:12" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "11675:5:12" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "11657:17:12" - }, - "nodeType": "YulFunctionCall", - "src": "11657:24:12" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "11645:6:12" - }, - "nodeType": "YulFunctionCall", - "src": "11645:37:12" - }, - "nodeType": "YulExpressionStatement", - "src": "11645:37:12" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "11623:5:12", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "11630:3:12", - "type": "" - } - ], - "src": "11580:108:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11774:99:12", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11818:6:12" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11826:3:12" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "11784:33:12" - }, - "nodeType": "YulFunctionCall", - "src": "11784:46:12" - }, - "nodeType": "YulExpressionStatement", - "src": "11784:46:12" - }, - { - "nodeType": "YulAssignment", - "src": "11839:28:12", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11857:3:12" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11862:4:12", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11853:3:12" - }, - "nodeType": "YulFunctionCall", - "src": "11853:14:12" - }, - "variableNames": [ - { - "name": "updatedPos", - "nodeType": "YulIdentifier", - "src": "11839:10:12" - } - ] - } - ] - }, - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11747:6:12", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "11755:3:12", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updatedPos", - "nodeType": "YulTypedName", - "src": "11763:10:12", - "type": "" - } - ], - "src": "11694:179:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11954:38:12", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11964:22:12", - "value": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "11976:3:12" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11981:4:12", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11972:3:12" - }, - "nodeType": "YulFunctionCall", - "src": "11972:14:12" - }, - "variableNames": [ - { - "name": "next", - "nodeType": "YulIdentifier", - "src": "11964:4:12" - } - ] - } - ] - }, - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "11941:3:12", - "type": "" - } - ], - "returnVariables": [ - { - "name": "next", - "nodeType": "YulTypedName", - "src": "11949:4:12", - "type": "" - } - ], - "src": "11879:113:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12152:608:12", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12162:68:12", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "12224:5:12" - } - ], - "functionName": { - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "12176:47:12" - }, - "nodeType": "YulFunctionCall", - "src": "12176:54:12" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "12166:6:12", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "12239:93:12", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12320:3:12" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "12325:6:12" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "12246:73:12" - }, - "nodeType": "YulFunctionCall", - "src": "12246:86:12" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12239:3:12" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "12341:71:12", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "12406:5:12" - } - ], - "functionName": { - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "12356:49:12" - }, - "nodeType": "YulFunctionCall", - "src": "12356:56:12" - }, - "variables": [ - { - "name": "baseRef", - "nodeType": "YulTypedName", - "src": "12345:7:12", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "12421:21:12", - "value": { - "name": "baseRef", - "nodeType": "YulIdentifier", - "src": "12435:7:12" - }, - "variables": [ - { - "name": "srcPtr", - "nodeType": "YulTypedName", - "src": "12425:6:12", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12511:224:12", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12525:34:12", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "12552:6:12" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "12546:5:12" - }, - "nodeType": "YulFunctionCall", - "src": "12546:13:12" - }, - "variables": [ - { - "name": "elementValue0", - "nodeType": "YulTypedName", - "src": "12529:13:12", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "12572:70:12", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nodeType": "YulIdentifier", - "src": "12623:13:12" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12638:3:12" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "12579:43:12" - }, - "nodeType": "YulFunctionCall", - "src": "12579:63:12" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12572:3:12" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "12655:70:12", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "12718:6:12" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "12665:52:12" - }, - "nodeType": "YulFunctionCall", - "src": "12665:60:12" - }, - "variableNames": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "12655:6:12" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "12473:1:12" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "12476:6:12" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "12470:2:12" - }, - "nodeType": "YulFunctionCall", - "src": "12470:13:12" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "12484:18:12", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "12486:14:12", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "12495:1:12" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12498:1:12", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12491:3:12" - }, - "nodeType": "YulFunctionCall", - "src": "12491:9:12" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "12486:1:12" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "12455:14:12", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "12457:10:12", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12466:1:12", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "12461:1:12", - "type": "" - } - ] - } - ] - }, - "src": "12451:284:12" - }, - { - "nodeType": "YulAssignment", - "src": "12744:10:12", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "12751:3:12" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "12744:3:12" - } - ] - } - ] - }, - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "12131:5:12", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "12138:3:12", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "12147:3:12", - "type": "" - } - ], - "src": "12028:732:12" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12855:28:12", + "src": "13234:28:12", "statements": [ { "expression": { @@ -7452,14 +7629,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "12872:1:12", + "src": "13251:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12875:1:12", + "src": "13254:1:12", "type": "", "value": "0" } @@ -7467,24 +7644,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "12865:6:12" + "src": "13244:6:12" }, "nodeType": "YulFunctionCall", - "src": "12865:12:12" + "src": "13244:12:12" }, "nodeType": "YulExpressionStatement", - "src": "12865:12:12" + "src": "13244:12:12" } ] }, "name": "revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec", "nodeType": "YulFunctionDefinition", - "src": "12766:117:12" + "src": "13145:117:12" }, { "body": { "nodeType": "YulBlock", - "src": "12940:103:12", + "src": "13319:103:12", "statements": [ { "expression": { @@ -7492,29 +7669,29 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "12963:3:12" + "src": "13342:3:12" }, { "name": "src", "nodeType": "YulIdentifier", - "src": "12968:3:12" + "src": "13347:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "12973:6:12" + "src": "13352:6:12" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", - "src": "12950:12:12" + "src": "13329:12:12" }, "nodeType": "YulFunctionCall", - "src": "12950:30:12" + "src": "13329:30:12" }, "nodeType": "YulExpressionStatement", - "src": "12950:30:12" + "src": "13329:30:12" }, { "expression": { @@ -7524,26 +7701,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "13021:3:12" + "src": "13400:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "13026:6:12" + "src": "13405:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13017:3:12" + "src": "13396:3:12" }, "nodeType": "YulFunctionCall", - "src": "13017:16:12" + "src": "13396:16:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13035:1:12", + "src": "13414:1:12", "type": "", "value": "0" } @@ -7551,13 +7728,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13010:6:12" + "src": "13389:6:12" }, "nodeType": "YulFunctionCall", - "src": "13010:27:12" + "src": "13389:27:12" }, "nodeType": "YulExpressionStatement", - "src": "13010:27:12" + "src": "13389:27:12" } ] }, @@ -7567,65 +7744,65 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "12922:3:12", + "src": "13301:3:12", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "12927:3:12", + "src": "13306:3:12", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "12932:6:12", + "src": "13311:6:12", "type": "" } ], - "src": "12889:154:12" + "src": "13268:154:12" }, { "body": { "nodeType": "YulBlock", - "src": "13211:405:12", + "src": "13590:405:12", "statements": [ { "nodeType": "YulAssignment", - "src": "13221:93:12", + "src": "13600:93:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "13302:3:12" + "src": "13681:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "13307:6:12" + "src": "13686:6:12" } ], "functionName": { "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "13228:73:12" + "src": "13607:73:12" }, "nodeType": "YulFunctionCall", - "src": "13228:86:12" + "src": "13607:86:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "13221:3:12" + "src": "13600:3:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "13406:83:12", + "src": "13785:83:12", "statements": [ { "expression": { @@ -7633,13 +7810,13 @@ "functionName": { "name": "revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec", "nodeType": "YulIdentifier", - "src": "13408:77:12" + "src": "13787:77:12" }, "nodeType": "YulFunctionCall", - "src": "13408:79:12" + "src": "13787:79:12" }, "nodeType": "YulExpressionStatement", - "src": "13408:79:12" + "src": "13787:79:12" } ] }, @@ -7648,12 +7825,12 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "13330:6:12" + "src": "13709:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13338:66:12", + "src": "13717:66:12", "type": "", "value": "0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } @@ -7661,28 +7838,28 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "13327:2:12" + "src": "13706:2:12" }, "nodeType": "YulFunctionCall", - "src": "13327:78:12" + "src": "13706:78:12" }, "nodeType": "YulIf", - "src": "13324:165:12" + "src": "13703:165:12" }, { "nodeType": "YulAssignment", - "src": "13498:27:12", + "src": "13877:27:12", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "13512:6:12" + "src": "13891:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13520:4:12", + "src": "13899:4:12", "type": "", "value": "0x20" } @@ -7690,16 +7867,16 @@ "functionName": { "name": "mul", "nodeType": "YulIdentifier", - "src": "13508:3:12" + "src": "13887:3:12" }, "nodeType": "YulFunctionCall", - "src": "13508:17:12" + "src": "13887:17:12" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "13498:6:12" + "src": "13877:6:12" } ] }, @@ -7709,59 +7886,59 @@ { "name": "start", "nodeType": "YulIdentifier", - "src": "13559:5:12" + "src": "13938:5:12" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "13566:3:12" + "src": "13945:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "13571:6:12" + "src": "13950:6:12" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", - "src": "13535:23:12" + "src": "13914:23:12" }, "nodeType": "YulFunctionCall", - "src": "13535:43:12" + "src": "13914:43:12" }, "nodeType": "YulExpressionStatement", - "src": "13535:43:12" + "src": "13914:43:12" }, { "nodeType": "YulAssignment", - "src": "13587:23:12", + "src": "13966:23:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "13598:3:12" + "src": "13977:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "13603:6:12" + "src": "13982:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13594:3:12" + "src": "13973:3:12" }, "nodeType": "YulFunctionCall", - "src": "13594:16:12" + "src": "13973:16:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "13587:3:12" + "src": "13966:3:12" } ] } @@ -7773,19 +7950,19 @@ { "name": "start", "nodeType": "YulTypedName", - "src": "13184:5:12", + "src": "13563:5:12", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "13191:6:12", + "src": "13570:6:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "13199:3:12", + "src": "13578:3:12", "type": "" } ], @@ -7793,31 +7970,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "13207:3:12", + "src": "13586:3:12", "type": "" } ], - "src": "13079:537:12" + "src": "13458:537:12" }, { "body": { "nodeType": "YulBlock", - "src": "13858:418:12", + "src": "14237:418:12", "statements": [ { "nodeType": "YulAssignment", - "src": "13868:26:12", + "src": "14247:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13880:9:12" + "src": "14259:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13891:2:12", + "src": "14270:2:12", "type": "", "value": "64" } @@ -7825,16 +8002,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13876:3:12" + "src": "14255:3:12" }, "nodeType": "YulFunctionCall", - "src": "13876:18:12" + "src": "14255:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13868:4:12" + "src": "14247:4:12" } ] }, @@ -7846,12 +8023,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13915:9:12" + "src": "14294:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13926:1:12", + "src": "14305:1:12", "type": "", "value": "0" } @@ -7859,73 +8036,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13911:3:12" + "src": "14290:3:12" }, "nodeType": "YulFunctionCall", - "src": "13911:17:12" + "src": "14290:17:12" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13934:4:12" + "src": "14313:4:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13940:9:12" + "src": "14319:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "13930:3:12" + "src": "14309:3:12" }, "nodeType": "YulFunctionCall", - "src": "13930:20:12" + "src": "14309:20:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13904:6:12" + "src": "14283:6:12" }, "nodeType": "YulFunctionCall", - "src": "13904:47:12" + "src": "14283:47:12" }, "nodeType": "YulExpressionStatement", - "src": "13904:47:12" + "src": "14283:47:12" }, { "nodeType": "YulAssignment", - "src": "13960:116:12", + "src": "14339:116:12", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "14062:6:12" + "src": "14441:6:12" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "14071:4:12" + "src": "14450:4:12" } ], "functionName": { "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "13968:93:12" + "src": "14347:93:12" }, "nodeType": "YulFunctionCall", - "src": "13968:108:12" + "src": "14347:108:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13960:4:12" + "src": "14339:4:12" } ] }, @@ -7937,12 +8114,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14097:9:12" + "src": "14476:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14108:2:12", + "src": "14487:2:12", "type": "", "value": "32" } @@ -7950,78 +8127,78 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14093:3:12" + "src": "14472:3:12" }, "nodeType": "YulFunctionCall", - "src": "14093:18:12" + "src": "14472:18:12" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "14117:4:12" + "src": "14496:4:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14123:9:12" + "src": "14502:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "14113:3:12" + "src": "14492:3:12" }, "nodeType": "YulFunctionCall", - "src": "14113:20:12" + "src": "14492:20:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14086:6:12" + "src": "14465:6:12" }, "nodeType": "YulFunctionCall", - "src": "14086:48:12" + "src": "14465:48:12" }, "nodeType": "YulExpressionStatement", - "src": "14086:48:12" + "src": "14465:48:12" }, { "nodeType": "YulAssignment", - "src": "14143:126:12", + "src": "14522:126:12", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "14247:6:12" + "src": "14626:6:12" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "14255:6:12" + "src": "14634:6:12" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "14264:4:12" + "src": "14643:4:12" } ], "functionName": { "name": "abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "14151:95:12" + "src": "14530:95:12" }, "nodeType": "YulFunctionCall", - "src": "14151:118:12" + "src": "14530:118:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "14143:4:12" + "src": "14522:4:12" } ] } @@ -8033,25 +8210,25 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "13814:9:12", + "src": "14193:9:12", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "13826:6:12", + "src": "14205:6:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "13834:6:12", + "src": "14213:6:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "13842:6:12", + "src": "14221:6:12", "type": "" } ], @@ -8059,16 +8236,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "13853:4:12", + "src": "14232:4:12", "type": "" } ], - "src": "13622:654:12" + "src": "14001:654:12" }, { "body": { "nodeType": "YulBlock", - "src": "14388:128:12", + "src": "14767:128:12", "statements": [ { "expression": { @@ -8078,12 +8255,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "14410:6:12" + "src": "14789:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14418:1:12", + "src": "14797:1:12", "type": "", "value": "0" } @@ -8091,16 +8268,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14406:3:12" + "src": "14785:3:12" }, "nodeType": "YulFunctionCall", - "src": "14406:14:12" + "src": "14785:14:12" }, { "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365", "kind": "string", "nodeType": "YulLiteral", - "src": "14422:34:12", + "src": "14801:34:12", "type": "", "value": "AccessControl: can only renounce" } @@ -8108,13 +8285,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14399:6:12" + "src": "14778:6:12" }, "nodeType": "YulFunctionCall", - "src": "14399:58:12" + "src": "14778:58:12" }, "nodeType": "YulExpressionStatement", - "src": "14399:58:12" + "src": "14778:58:12" }, { "expression": { @@ -8124,12 +8301,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "14478:6:12" + "src": "14857:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14486:2:12", + "src": "14865:2:12", "type": "", "value": "32" } @@ -8137,16 +8314,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14474:3:12" + "src": "14853:3:12" }, "nodeType": "YulFunctionCall", - "src": "14474:15:12" + "src": "14853:15:12" }, { "hexValue": "20726f6c657320666f722073656c66", "kind": "string", "nodeType": "YulLiteral", - "src": "14491:17:12", + "src": "14870:17:12", "type": "", "value": " roles for self" } @@ -8154,13 +8331,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14467:6:12" + "src": "14846:6:12" }, "nodeType": "YulFunctionCall", - "src": "14467:42:12" + "src": "14846:42:12" }, "nodeType": "YulExpressionStatement", - "src": "14467:42:12" + "src": "14846:42:12" } ] }, @@ -8170,31 +8347,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "14380:6:12", + "src": "14759:6:12", "type": "" } ], - "src": "14282:234:12" + "src": "14661:234:12" }, { "body": { "nodeType": "YulBlock", - "src": "14668:220:12", + "src": "15047:220:12", "statements": [ { "nodeType": "YulAssignment", - "src": "14678:74:12", + "src": "15057:74:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "14744:3:12" + "src": "15123:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14749:2:12", + "src": "15128:2:12", "type": "", "value": "47" } @@ -8202,16 +8379,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "14685:58:12" + "src": "15064:58:12" }, "nodeType": "YulFunctionCall", - "src": "14685:67:12" + "src": "15064:67:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "14678:3:12" + "src": "15057:3:12" } ] }, @@ -8221,34 +8398,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "14850:3:12" + "src": "15229:3:12" } ], "functionName": { "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", "nodeType": "YulIdentifier", - "src": "14761:88:12" + "src": "15140:88:12" }, "nodeType": "YulFunctionCall", - "src": "14761:93:12" + "src": "15140:93:12" }, "nodeType": "YulExpressionStatement", - "src": "14761:93:12" + "src": "15140:93:12" }, { "nodeType": "YulAssignment", - "src": "14863:19:12", + "src": "15242:19:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "14874:3:12" + "src": "15253:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14879:2:12", + "src": "15258:2:12", "type": "", "value": "64" } @@ -8256,16 +8433,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14870:3:12" + "src": "15249:3:12" }, "nodeType": "YulFunctionCall", - "src": "14870:12:12" + "src": "15249:12:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "14863:3:12" + "src": "15242:3:12" } ] } @@ -8277,7 +8454,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "14656:3:12", + "src": "15035:3:12", "type": "" } ], @@ -8285,31 +8462,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "14664:3:12", + "src": "15043:3:12", "type": "" } ], - "src": "14522:366:12" + "src": "14901:366:12" }, { "body": { "nodeType": "YulBlock", - "src": "15065:248:12", + "src": "15444:248:12", "statements": [ { "nodeType": "YulAssignment", - "src": "15075:26:12", + "src": "15454:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15087:9:12" + "src": "15466:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15098:2:12", + "src": "15477:2:12", "type": "", "value": "32" } @@ -8317,16 +8494,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15083:3:12" + "src": "15462:3:12" }, "nodeType": "YulFunctionCall", - "src": "15083:18:12" + "src": "15462:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "15075:4:12" + "src": "15454:4:12" } ] }, @@ -8338,12 +8515,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15122:9:12" + "src": "15501:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15133:1:12", + "src": "15512:1:12", "type": "", "value": "0" } @@ -8351,68 +8528,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15118:3:12" + "src": "15497:3:12" }, "nodeType": "YulFunctionCall", - "src": "15118:17:12" + "src": "15497:17:12" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "15141:4:12" + "src": "15520:4:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15147:9:12" + "src": "15526:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "15137:3:12" + "src": "15516:3:12" }, "nodeType": "YulFunctionCall", - "src": "15137:20:12" + "src": "15516:20:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15111:6:12" + "src": "15490:6:12" }, "nodeType": "YulFunctionCall", - "src": "15111:47:12" + "src": "15490:47:12" }, "nodeType": "YulExpressionStatement", - "src": "15111:47:12" + "src": "15490:47:12" }, { "nodeType": "YulAssignment", - "src": "15167:139:12", + "src": "15546:139:12", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "15301:4:12" + "src": "15680:4:12" } ], "functionName": { "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "15175:124:12" + "src": "15554:124:12" }, "nodeType": "YulFunctionCall", - "src": "15175:131:12" + "src": "15554:131:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "15167:4:12" + "src": "15546:4:12" } ] } @@ -8424,7 +8601,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "15045:9:12", + "src": "15424:9:12", "type": "" } ], @@ -8432,30 +8609,30 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "15060:4:12", + "src": "15439:4:12", "type": "" } ], - "src": "14894:419:12" + "src": "15273:419:12" }, { "body": { "nodeType": "YulBlock", - "src": "15433:34:12", + "src": "15812:34:12", "statements": [ { "nodeType": "YulAssignment", - "src": "15443:18:12", + "src": "15822:18:12", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "15458:3:12" + "src": "15837:3:12" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "15443:11:12" + "src": "15822:11:12" } ] } @@ -8467,13 +8644,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "15405:3:12", + "src": "15784:3:12", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "15410:6:12", + "src": "15789:6:12", "type": "" } ], @@ -8481,16 +8658,16 @@ { "name": "updated_pos", "nodeType": "YulTypedName", - "src": "15421:11:12", + "src": "15800:11:12", "type": "" } ], - "src": "15319:148:12" + "src": "15698:148:12" }, { "body": { "nodeType": "YulBlock", - "src": "15579:67:12", + "src": "15958:67:12", "statements": [ { "expression": { @@ -8500,12 +8677,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "15601:6:12" + "src": "15980:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15609:1:12", + "src": "15988:1:12", "type": "", "value": "0" } @@ -8513,16 +8690,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15597:3:12" + "src": "15976:3:12" }, "nodeType": "YulFunctionCall", - "src": "15597:14:12" + "src": "15976:14:12" }, { "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", "kind": "string", "nodeType": "YulLiteral", - "src": "15613:25:12", + "src": "15992:25:12", "type": "", "value": "AccessControl: account " } @@ -8530,13 +8707,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15590:6:12" + "src": "15969:6:12" }, "nodeType": "YulFunctionCall", - "src": "15590:49:12" + "src": "15969:49:12" }, "nodeType": "YulExpressionStatement", - "src": "15590:49:12" + "src": "15969:49:12" } ] }, @@ -8546,31 +8723,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "15571:6:12", + "src": "15950:6:12", "type": "" } ], - "src": "15473:173:12" + "src": "15852:173:12" }, { "body": { "nodeType": "YulBlock", - "src": "15816:238:12", + "src": "16195:238:12", "statements": [ { "nodeType": "YulAssignment", - "src": "15826:92:12", + "src": "16205:92:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "15910:3:12" + "src": "16289:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15915:2:12", + "src": "16294:2:12", "type": "", "value": "23" } @@ -8578,16 +8755,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "15833:76:12" + "src": "16212:76:12" }, "nodeType": "YulFunctionCall", - "src": "15833:85:12" + "src": "16212:85:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "15826:3:12" + "src": "16205:3:12" } ] }, @@ -8597,34 +8774,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16016:3:12" + "src": "16395:3:12" } ], "functionName": { "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", "nodeType": "YulIdentifier", - "src": "15927:88:12" + "src": "16306:88:12" }, "nodeType": "YulFunctionCall", - "src": "15927:93:12" + "src": "16306:93:12" }, "nodeType": "YulExpressionStatement", - "src": "15927:93:12" + "src": "16306:93:12" }, { "nodeType": "YulAssignment", - "src": "16029:19:12", + "src": "16408:19:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16040:3:12" + "src": "16419:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16045:2:12", + "src": "16424:2:12", "type": "", "value": "23" } @@ -8632,16 +8809,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16036:3:12" + "src": "16415:3:12" }, "nodeType": "YulFunctionCall", - "src": "16036:12:12" + "src": "16415:12:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "16029:3:12" + "src": "16408:3:12" } ] } @@ -8653,7 +8830,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "15804:3:12", + "src": "16183:3:12", "type": "" } ], @@ -8661,41 +8838,41 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "15812:3:12", + "src": "16191:3:12", "type": "" } ], - "src": "15652:402:12" + "src": "16031:402:12" }, { "body": { "nodeType": "YulBlock", - "src": "16119:40:12", + "src": "16498:40:12", "statements": [ { "nodeType": "YulAssignment", - "src": "16130:22:12", + "src": "16509:22:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "16146:5:12" + "src": "16525:5:12" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "16140:5:12" + "src": "16519:5:12" }, "nodeType": "YulFunctionCall", - "src": "16140:12:12" + "src": "16519:12:12" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "16130:6:12" + "src": "16509:6:12" } ] } @@ -8707,7 +8884,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "16102:5:12", + "src": "16481:5:12", "type": "" } ], @@ -8715,24 +8892,24 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "16112:6:12", + "src": "16491:6:12", "type": "" } ], - "src": "16060:99:12" + "src": "16439:99:12" }, { "body": { "nodeType": "YulBlock", - "src": "16214:258:12", + "src": "16593:258:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "16224:10:12", + "src": "16603:10:12", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "16233:1:12", + "src": "16612:1:12", "type": "", "value": "0" }, @@ -8740,7 +8917,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "16228:1:12", + "src": "16607:1:12", "type": "" } ] @@ -8748,7 +8925,7 @@ { "body": { "nodeType": "YulBlock", - "src": "16293:63:12", + "src": "16672:63:12", "statements": [ { "expression": { @@ -8758,21 +8935,21 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "16318:3:12" + "src": "16697:3:12" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "16323:1:12" + "src": "16702:1:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16314:3:12" + "src": "16693:3:12" }, "nodeType": "YulFunctionCall", - "src": "16314:11:12" + "src": "16693:11:12" }, { "arguments": [ @@ -8781,42 +8958,42 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "16337:3:12" + "src": "16716:3:12" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "16342:1:12" + "src": "16721:1:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16333:3:12" + "src": "16712:3:12" }, "nodeType": "YulFunctionCall", - "src": "16333:11:12" + "src": "16712:11:12" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "16327:5:12" + "src": "16706:5:12" }, "nodeType": "YulFunctionCall", - "src": "16327:18:12" + "src": "16706:18:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16307:6:12" + "src": "16686:6:12" }, "nodeType": "YulFunctionCall", - "src": "16307:39:12" + "src": "16686:39:12" }, "nodeType": "YulExpressionStatement", - "src": "16307:39:12" + "src": "16686:39:12" } ] }, @@ -8825,41 +9002,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "16254:1:12" + "src": "16633:1:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16257:6:12" + "src": "16636:6:12" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "16251:2:12" + "src": "16630:2:12" }, "nodeType": "YulFunctionCall", - "src": "16251:13:12" + "src": "16630:13:12" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "16265:19:12", + "src": "16644:19:12", "statements": [ { "nodeType": "YulAssignment", - "src": "16267:15:12", + "src": "16646:15:12", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "16276:1:12" + "src": "16655:1:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16279:2:12", + "src": "16658:2:12", "type": "", "value": "32" } @@ -8867,16 +9044,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16272:3:12" + "src": "16651:3:12" }, "nodeType": "YulFunctionCall", - "src": "16272:10:12" + "src": "16651:10:12" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "16267:1:12" + "src": "16646:1:12" } ] } @@ -8884,15 +9061,15 @@ }, "pre": { "nodeType": "YulBlock", - "src": "16247:3:12", + "src": "16626:3:12", "statements": [] }, - "src": "16243:113:12" + "src": "16622:113:12" }, { "body": { "nodeType": "YulBlock", - "src": "16390:76:12", + "src": "16769:76:12", "statements": [ { "expression": { @@ -8902,26 +9079,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "16440:3:12" + "src": "16819:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16445:6:12" + "src": "16824:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16436:3:12" + "src": "16815:3:12" }, "nodeType": "YulFunctionCall", - "src": "16436:16:12" + "src": "16815:16:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16454:1:12", + "src": "16833:1:12", "type": "", "value": "0" } @@ -8929,13 +9106,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16429:6:12" + "src": "16808:6:12" }, "nodeType": "YulFunctionCall", - "src": "16429:27:12" + "src": "16808:27:12" }, "nodeType": "YulExpressionStatement", - "src": "16429:27:12" + "src": "16808:27:12" } ] }, @@ -8944,24 +9121,24 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "16371:1:12" + "src": "16750:1:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16374:6:12" + "src": "16753:6:12" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "16368:2:12" + "src": "16747:2:12" }, "nodeType": "YulFunctionCall", - "src": "16368:13:12" + "src": "16747:13:12" }, "nodeType": "YulIf", - "src": "16365:101:12" + "src": "16744:101:12" } ] }, @@ -8971,86 +9148,86 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "16196:3:12", + "src": "16575:3:12", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "16201:3:12", + "src": "16580:3:12", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "16206:6:12", + "src": "16585:6:12", "type": "" } ], - "src": "16165:307:12" + "src": "16544:307:12" }, { "body": { "nodeType": "YulBlock", - "src": "16588:267:12", + "src": "16967:267:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "16598:53:12", + "src": "16977:53:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "16645:5:12" + "src": "17024:5:12" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", - "src": "16612:32:12" + "src": "16991:32:12" }, "nodeType": "YulFunctionCall", - "src": "16612:39:12" + "src": "16991:39:12" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "16602:6:12", + "src": "16981:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "16660:96:12", + "src": "17039:96:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16744:3:12" + "src": "17123:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16749:6:12" + "src": "17128:6:12" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "16667:76:12" + "src": "17046:76:12" }, "nodeType": "YulFunctionCall", - "src": "16667:89:12" + "src": "17046:89:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16660:3:12" + "src": "17039:3:12" } ] }, @@ -9062,12 +9239,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "16791:5:12" + "src": "17170:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16798:4:12", + "src": "17177:4:12", "type": "", "value": "0x20" } @@ -9075,62 +9252,62 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16787:3:12" + "src": "17166:3:12" }, "nodeType": "YulFunctionCall", - "src": "16787:16:12" + "src": "17166:16:12" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "16805:3:12" + "src": "17184:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16810:6:12" + "src": "17189:6:12" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "16765:21:12" + "src": "17144:21:12" }, "nodeType": "YulFunctionCall", - "src": "16765:52:12" + "src": "17144:52:12" }, "nodeType": "YulExpressionStatement", - "src": "16765:52:12" + "src": "17144:52:12" }, { "nodeType": "YulAssignment", - "src": "16826:23:12", + "src": "17205:23:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16837:3:12" + "src": "17216:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16842:6:12" + "src": "17221:6:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16833:3:12" + "src": "17212:3:12" }, "nodeType": "YulFunctionCall", - "src": "16833:16:12" + "src": "17212:16:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "16826:3:12" + "src": "17205:3:12" } ] } @@ -9142,13 +9319,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "16569:5:12", + "src": "16948:5:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "16576:3:12", + "src": "16955:3:12", "type": "" } ], @@ -9156,16 +9333,16 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "16584:3:12", + "src": "16963:3:12", "type": "" } ], - "src": "16478:377:12" + "src": "16857:377:12" }, { "body": { "nodeType": "YulBlock", - "src": "16967:61:12", + "src": "17346:61:12", "statements": [ { "expression": { @@ -9175,12 +9352,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "16989:6:12" + "src": "17368:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16997:1:12", + "src": "17376:1:12", "type": "", "value": "0" } @@ -9188,16 +9365,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16985:3:12" + "src": "17364:3:12" }, "nodeType": "YulFunctionCall", - "src": "16985:14:12" + "src": "17364:14:12" }, { "hexValue": "206973206d697373696e6720726f6c6520", "kind": "string", "nodeType": "YulLiteral", - "src": "17001:19:12", + "src": "17380:19:12", "type": "", "value": " is missing role " } @@ -9205,13 +9382,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16978:6:12" + "src": "17357:6:12" }, "nodeType": "YulFunctionCall", - "src": "16978:43:12" + "src": "17357:43:12" }, "nodeType": "YulExpressionStatement", - "src": "16978:43:12" + "src": "17357:43:12" } ] }, @@ -9221,31 +9398,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "16959:6:12", + "src": "17338:6:12", "type": "" } ], - "src": "16861:167:12" + "src": "17240:167:12" }, { "body": { "nodeType": "YulBlock", - "src": "17198:238:12", + "src": "17577:238:12", "statements": [ { "nodeType": "YulAssignment", - "src": "17208:92:12", + "src": "17587:92:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17292:3:12" + "src": "17671:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17297:2:12", + "src": "17676:2:12", "type": "", "value": "17" } @@ -9253,16 +9430,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "17215:76:12" + "src": "17594:76:12" }, "nodeType": "YulFunctionCall", - "src": "17215:85:12" + "src": "17594:85:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17208:3:12" + "src": "17587:3:12" } ] }, @@ -9272,34 +9449,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17398:3:12" + "src": "17777:3:12" } ], "functionName": { "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", "nodeType": "YulIdentifier", - "src": "17309:88:12" + "src": "17688:88:12" }, "nodeType": "YulFunctionCall", - "src": "17309:93:12" + "src": "17688:93:12" }, "nodeType": "YulExpressionStatement", - "src": "17309:93:12" + "src": "17688:93:12" }, { "nodeType": "YulAssignment", - "src": "17411:19:12", + "src": "17790:19:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17422:3:12" + "src": "17801:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17427:2:12", + "src": "17806:2:12", "type": "", "value": "17" } @@ -9307,16 +9484,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17418:3:12" + "src": "17797:3:12" }, "nodeType": "YulFunctionCall", - "src": "17418:12:12" + "src": "17797:12:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "17411:3:12" + "src": "17790:3:12" } ] } @@ -9328,7 +9505,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "17186:3:12", + "src": "17565:3:12", "type": "" } ], @@ -9336,148 +9513,148 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "17194:3:12", + "src": "17573:3:12", "type": "" } ], - "src": "17034:402:12" + "src": "17413:402:12" }, { "body": { "nodeType": "YulBlock", - "src": "17828:581:12", + "src": "18207:581:12", "statements": [ { "nodeType": "YulAssignment", - "src": "17839:155:12", + "src": "18218:155:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17990:3:12" + "src": "18369:3:12" } ], "functionName": { "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "17846:142:12" + "src": "18225:142:12" }, "nodeType": "YulFunctionCall", - "src": "17846:148:12" + "src": "18225:148:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "17839:3:12" + "src": "18218:3:12" } ] }, { "nodeType": "YulAssignment", - "src": "18004:102:12", + "src": "18383:102:12", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "18093:6:12" + "src": "18472:6:12" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "18102:3:12" + "src": "18481:3:12" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "18011:81:12" + "src": "18390:81:12" }, "nodeType": "YulFunctionCall", - "src": "18011:95:12" + "src": "18390:95:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18004:3:12" + "src": "18383:3:12" } ] }, { "nodeType": "YulAssignment", - "src": "18116:155:12", + "src": "18495:155:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18267:3:12" + "src": "18646:3:12" } ], "functionName": { "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "18123:142:12" + "src": "18502:142:12" }, "nodeType": "YulFunctionCall", - "src": "18123:148:12" + "src": "18502:148:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18116:3:12" + "src": "18495:3:12" } ] }, { "nodeType": "YulAssignment", - "src": "18281:102:12", + "src": "18660:102:12", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "18370:6:12" + "src": "18749:6:12" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "18379:3:12" + "src": "18758:3:12" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", - "src": "18288:81:12" + "src": "18667:81:12" }, "nodeType": "YulFunctionCall", - "src": "18288:95:12" + "src": "18667:95:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18281:3:12" + "src": "18660:3:12" } ] }, { "nodeType": "YulAssignment", - "src": "18393:10:12", + "src": "18772:10:12", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "18400:3:12" + "src": "18779:3:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "18393:3:12" + "src": "18772:3:12" } ] } @@ -9489,19 +9666,19 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "17799:3:12", + "src": "18178:3:12", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "17805:6:12", + "src": "18184:6:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "17813:6:12", + "src": "18192:6:12", "type": "" } ], @@ -9509,20 +9686,20 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "17824:3:12", + "src": "18203:3:12", "type": "" } ], - "src": "17442:967:12" + "src": "17821:967:12" }, { "body": { "nodeType": "YulBlock", - "src": "18463:54:12", + "src": "18842:54:12", "statements": [ { "nodeType": "YulAssignment", - "src": "18473:38:12", + "src": "18852:38:12", "value": { "arguments": [ { @@ -9530,12 +9707,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "18491:5:12" + "src": "18870:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18498:2:12", + "src": "18877:2:12", "type": "", "value": "31" } @@ -9543,17 +9720,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18487:3:12" + "src": "18866:3:12" }, "nodeType": "YulFunctionCall", - "src": "18487:14:12" + "src": "18866:14:12" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "18507:2:12", + "src": "18886:2:12", "type": "", "value": "31" } @@ -9561,25 +9738,25 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "18503:3:12" + "src": "18882:3:12" }, "nodeType": "YulFunctionCall", - "src": "18503:7:12" + "src": "18882:7:12" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18483:3:12" + "src": "18862:3:12" }, "nodeType": "YulFunctionCall", - "src": "18483:28:12" + "src": "18862:28:12" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", - "src": "18473:6:12" + "src": "18852:6:12" } ] } @@ -9591,7 +9768,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "18446:5:12", + "src": "18825:5:12", "type": "" } ], @@ -9599,74 +9776,74 @@ { "name": "result", "nodeType": "YulTypedName", - "src": "18456:6:12", + "src": "18835:6:12", "type": "" } ], - "src": "18415:102:12" + "src": "18794:102:12" }, { "body": { "nodeType": "YulBlock", - "src": "18615:272:12", + "src": "18994:272:12", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "18625:53:12", + "src": "19004:53:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "18672:5:12" + "src": "19051:5:12" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", - "src": "18639:32:12" + "src": "19018:32:12" }, "nodeType": "YulFunctionCall", - "src": "18639:39:12" + "src": "19018:39:12" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "18629:6:12", + "src": "19008:6:12", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "18687:78:12", + "src": "19066:78:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18753:3:12" + "src": "19132:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "18758:6:12" + "src": "19137:6:12" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "18694:58:12" + "src": "19073:58:12" }, "nodeType": "YulFunctionCall", - "src": "18694:71:12" + "src": "19073:71:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18687:3:12" + "src": "19066:3:12" } ] }, @@ -9678,12 +9855,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "18800:5:12" + "src": "19179:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18807:4:12", + "src": "19186:4:12", "type": "", "value": "0x20" } @@ -9691,73 +9868,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18796:3:12" + "src": "19175:3:12" }, "nodeType": "YulFunctionCall", - "src": "18796:16:12" + "src": "19175:16:12" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "18814:3:12" + "src": "19193:3:12" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "18819:6:12" + "src": "19198:6:12" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "18774:21:12" + "src": "19153:21:12" }, "nodeType": "YulFunctionCall", - "src": "18774:52:12" + "src": "19153:52:12" }, "nodeType": "YulExpressionStatement", - "src": "18774:52:12" + "src": "19153:52:12" }, { "nodeType": "YulAssignment", - "src": "18835:46:12", + "src": "19214:46:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "18846:3:12" + "src": "19225:3:12" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "18873:6:12" + "src": "19252:6:12" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", - "src": "18851:21:12" + "src": "19230:21:12" }, "nodeType": "YulFunctionCall", - "src": "18851:29:12" + "src": "19230:29:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18842:3:12" + "src": "19221:3:12" }, "nodeType": "YulFunctionCall", - "src": "18842:39:12" + "src": "19221:39:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "18835:3:12" + "src": "19214:3:12" } ] } @@ -9769,13 +9946,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "18596:5:12", + "src": "18975:5:12", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "18603:3:12", + "src": "18982:3:12", "type": "" } ], @@ -9783,31 +9960,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "18611:3:12", + "src": "18990:3:12", "type": "" } ], - "src": "18523:364:12" + "src": "18902:364:12" }, { "body": { "nodeType": "YulBlock", - "src": "19011:195:12", + "src": "19390:195:12", "statements": [ { "nodeType": "YulAssignment", - "src": "19021:26:12", + "src": "19400:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19033:9:12" + "src": "19412:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19044:2:12", + "src": "19423:2:12", "type": "", "value": "32" } @@ -9815,16 +9992,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19029:3:12" + "src": "19408:3:12" }, "nodeType": "YulFunctionCall", - "src": "19029:18:12" + "src": "19408:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19021:4:12" + "src": "19400:4:12" } ] }, @@ -9836,12 +10013,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19068:9:12" + "src": "19447:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19079:1:12", + "src": "19458:1:12", "type": "", "value": "0" } @@ -9849,73 +10026,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19064:3:12" + "src": "19443:3:12" }, "nodeType": "YulFunctionCall", - "src": "19064:17:12" + "src": "19443:17:12" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19087:4:12" + "src": "19466:4:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19093:9:12" + "src": "19472:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "19083:3:12" + "src": "19462:3:12" }, "nodeType": "YulFunctionCall", - "src": "19083:20:12" + "src": "19462:20:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19057:6:12" + "src": "19436:6:12" }, "nodeType": "YulFunctionCall", - "src": "19057:47:12" + "src": "19436:47:12" }, "nodeType": "YulExpressionStatement", - "src": "19057:47:12" + "src": "19436:47:12" }, { "nodeType": "YulAssignment", - "src": "19113:86:12", + "src": "19492:86:12", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "19185:6:12" + "src": "19564:6:12" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "19194:4:12" + "src": "19573:4:12" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "19121:63:12" + "src": "19500:63:12" }, "nodeType": "YulFunctionCall", - "src": "19121:78:12" + "src": "19500:78:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19113:4:12" + "src": "19492:4:12" } ] } @@ -9927,13 +10104,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "18983:9:12", + "src": "19362:9:12", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "18995:6:12", + "src": "19374:6:12", "type": "" } ], @@ -9941,75 +10118,75 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "19006:4:12", + "src": "19385:4:12", "type": "" } ], - "src": "18893:313:12" + "src": "19272:313:12" }, { "body": { "nodeType": "YulBlock", - "src": "19260:300:12", + "src": "19639:300:12", "statements": [ { "nodeType": "YulAssignment", - "src": "19270:25:12", + "src": "19649:25:12", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "19293:1:12" + "src": "19672:1:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "19275:17:12" + "src": "19654:17:12" }, "nodeType": "YulFunctionCall", - "src": "19275:20:12" + "src": "19654:20:12" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "19270:1:12" + "src": "19649:1:12" } ] }, { "nodeType": "YulAssignment", - "src": "19304:25:12", + "src": "19683:25:12", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "19327:1:12" + "src": "19706:1:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "19309:17:12" + "src": "19688:17:12" }, "nodeType": "YulFunctionCall", - "src": "19309:20:12" + "src": "19688:20:12" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "19304:1:12" + "src": "19683:1:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "19502:22:12", + "src": "19881:22:12", "statements": [ { "expression": { @@ -10017,13 +10194,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "19504:16:12" + "src": "19883:16:12" }, "nodeType": "YulFunctionCall", - "src": "19504:18:12" + "src": "19883:18:12" }, "nodeType": "YulExpressionStatement", - "src": "19504:18:12" + "src": "19883:18:12" } ] }, @@ -10036,106 +10213,106 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "19414:1:12" + "src": "19793:1:12" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "19407:6:12" + "src": "19786:6:12" }, "nodeType": "YulFunctionCall", - "src": "19407:9:12" + "src": "19786:9:12" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "19400:6:12" + "src": "19779:6:12" }, "nodeType": "YulFunctionCall", - "src": "19400:17:12" + "src": "19779:17:12" }, { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "19422:1:12" + "src": "19801:1:12" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "19429:66:12", + "src": "19808:66:12", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "x", "nodeType": "YulIdentifier", - "src": "19497:1:12" + "src": "19876:1:12" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", - "src": "19425:3:12" + "src": "19804:3:12" }, "nodeType": "YulFunctionCall", - "src": "19425:74:12" + "src": "19804:74:12" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "19419:2:12" + "src": "19798:2:12" }, "nodeType": "YulFunctionCall", - "src": "19419:81:12" + "src": "19798:81:12" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "19396:3:12" + "src": "19775:3:12" }, "nodeType": "YulFunctionCall", - "src": "19396:105:12" + "src": "19775:105:12" }, "nodeType": "YulIf", - "src": "19393:131:12" + "src": "19772:131:12" }, { "nodeType": "YulAssignment", - "src": "19534:20:12", + "src": "19913:20:12", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "19549:1:12" + "src": "19928:1:12" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "19552:1:12" + "src": "19931:1:12" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", - "src": "19545:3:12" + "src": "19924:3:12" }, "nodeType": "YulFunctionCall", - "src": "19545:9:12" + "src": "19924:9:12" }, "variableNames": [ { "name": "product", "nodeType": "YulIdentifier", - "src": "19534:7:12" + "src": "19913:7:12" } ] } @@ -10147,13 +10324,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "19243:1:12", + "src": "19622:1:12", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "19246:1:12", + "src": "19625:1:12", "type": "" } ], @@ -10161,75 +10338,75 @@ { "name": "product", "nodeType": "YulTypedName", - "src": "19252:7:12", + "src": "19631:7:12", "type": "" } ], - "src": "19212:348:12" + "src": "19591:348:12" }, { "body": { "nodeType": "YulBlock", - "src": "19610:261:12", + "src": "19989:261:12", "statements": [ { "nodeType": "YulAssignment", - "src": "19620:25:12", + "src": "19999:25:12", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "19643:1:12" + "src": "20022:1:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "19625:17:12" + "src": "20004:17:12" }, "nodeType": "YulFunctionCall", - "src": "19625:20:12" + "src": "20004:20:12" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "19620:1:12" + "src": "19999:1:12" } ] }, { "nodeType": "YulAssignment", - "src": "19654:25:12", + "src": "20033:25:12", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "19677:1:12" + "src": "20056:1:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "19659:17:12" + "src": "20038:17:12" }, "nodeType": "YulFunctionCall", - "src": "19659:20:12" + "src": "20038:20:12" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "19654:1:12" + "src": "20033:1:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "19817:22:12", + "src": "20196:22:12", "statements": [ { "expression": { @@ -10237,13 +10414,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "19819:16:12" + "src": "20198:16:12" }, "nodeType": "YulFunctionCall", - "src": "19819:18:12" + "src": "20198:18:12" }, "nodeType": "YulExpressionStatement", - "src": "19819:18:12" + "src": "20198:18:12" } ] }, @@ -10252,72 +10429,72 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "19738:1:12" + "src": "20117:1:12" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "19745:66:12", + "src": "20124:66:12", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "19813:1:12" + "src": "20192:1:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "19741:3:12" + "src": "20120:3:12" }, "nodeType": "YulFunctionCall", - "src": "19741:74:12" + "src": "20120:74:12" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "19735:2:12" + "src": "20114:2:12" }, "nodeType": "YulFunctionCall", - "src": "19735:81:12" + "src": "20114:81:12" }, "nodeType": "YulIf", - "src": "19732:107:12" + "src": "20111:107:12" }, { "nodeType": "YulAssignment", - "src": "19849:16:12", + "src": "20228:16:12", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "19860:1:12" + "src": "20239:1:12" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "19863:1:12" + "src": "20242:1:12" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19856:3:12" + "src": "20235:3:12" }, "nodeType": "YulFunctionCall", - "src": "19856:9:12" + "src": "20235:9:12" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", - "src": "19849:3:12" + "src": "20228:3:12" } ] } @@ -10329,13 +10506,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "19597:1:12", + "src": "19976:1:12", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "19600:1:12", + "src": "19979:1:12", "type": "" } ], @@ -10343,48 +10520,48 @@ { "name": "sum", "nodeType": "YulTypedName", - "src": "19606:3:12", + "src": "19985:3:12", "type": "" } ], - "src": "19566:305:12" + "src": "19945:305:12" }, { "body": { "nodeType": "YulBlock", - "src": "19920:128:12", + "src": "20299:128:12", "statements": [ { "nodeType": "YulAssignment", - "src": "19930:33:12", + "src": "20309:33:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "19957:5:12" + "src": "20336:5:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "19939:17:12" + "src": "20318:17:12" }, "nodeType": "YulFunctionCall", - "src": "19939:24:12" + "src": "20318:24:12" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "19930:5:12" + "src": "20309:5:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "19991:22:12", + "src": "20370:22:12", "statements": [ { "expression": { @@ -10392,13 +10569,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "19993:16:12" + "src": "20372:16:12" }, "nodeType": "YulFunctionCall", - "src": "19993:18:12" + "src": "20372:18:12" }, "nodeType": "YulExpressionStatement", - "src": "19993:18:12" + "src": "20372:18:12" } ] }, @@ -10407,12 +10584,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "19978:5:12" + "src": "20357:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19985:4:12", + "src": "20364:4:12", "type": "", "value": "0x00" } @@ -10420,28 +10597,28 @@ "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "19975:2:12" + "src": "20354:2:12" }, "nodeType": "YulFunctionCall", - "src": "19975:15:12" + "src": "20354:15:12" }, "nodeType": "YulIf", - "src": "19972:41:12" + "src": "20351:41:12" }, { "nodeType": "YulAssignment", - "src": "20022:20:12", + "src": "20401:20:12", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "20033:5:12" + "src": "20412:5:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20040:1:12", + "src": "20419:1:12", "type": "", "value": "1" } @@ -10449,16 +10626,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "20029:3:12" + "src": "20408:3:12" }, "nodeType": "YulFunctionCall", - "src": "20029:13:12" + "src": "20408:13:12" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "20022:3:12" + "src": "20401:3:12" } ] } @@ -10470,7 +10647,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "19906:5:12", + "src": "20285:5:12", "type": "" } ], @@ -10478,16 +10655,16 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "19916:3:12", + "src": "20295:3:12", "type": "" } ], - "src": "19877:171:12" + "src": "20256:171:12" }, { "body": { "nodeType": "YulBlock", - "src": "20160:76:12", + "src": "20539:76:12", "statements": [ { "expression": { @@ -10497,12 +10674,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "20182:6:12" + "src": "20561:6:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20190:1:12", + "src": "20569:1:12", "type": "", "value": "0" } @@ -10510,16 +10687,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20178:3:12" + "src": "20557:3:12" }, "nodeType": "YulFunctionCall", - "src": "20178:14:12" + "src": "20557:14:12" }, { "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", "kind": "string", "nodeType": "YulLiteral", - "src": "20194:34:12", + "src": "20573:34:12", "type": "", "value": "Strings: hex length insufficient" } @@ -10527,13 +10704,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20171:6:12" + "src": "20550:6:12" }, "nodeType": "YulFunctionCall", - "src": "20171:58:12" + "src": "20550:58:12" }, "nodeType": "YulExpressionStatement", - "src": "20171:58:12" + "src": "20550:58:12" } ] }, @@ -10543,31 +10720,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "20152:6:12", + "src": "20531:6:12", "type": "" } ], - "src": "20054:182:12" + "src": "20433:182:12" }, { "body": { "nodeType": "YulBlock", - "src": "20388:220:12", + "src": "20767:220:12", "statements": [ { "nodeType": "YulAssignment", - "src": "20398:74:12", + "src": "20777:74:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20464:3:12" + "src": "20843:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20469:2:12", + "src": "20848:2:12", "type": "", "value": "32" } @@ -10575,16 +10752,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "20405:58:12" + "src": "20784:58:12" }, "nodeType": "YulFunctionCall", - "src": "20405:67:12" + "src": "20784:67:12" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20398:3:12" + "src": "20777:3:12" } ] }, @@ -10594,34 +10771,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20570:3:12" + "src": "20949:3:12" } ], "functionName": { "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", "nodeType": "YulIdentifier", - "src": "20481:88:12" + "src": "20860:88:12" }, "nodeType": "YulFunctionCall", - "src": "20481:93:12" + "src": "20860:93:12" }, "nodeType": "YulExpressionStatement", - "src": "20481:93:12" + "src": "20860:93:12" }, { "nodeType": "YulAssignment", - "src": "20583:19:12", + "src": "20962:19:12", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20594:3:12" + "src": "20973:3:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20599:2:12", + "src": "20978:2:12", "type": "", "value": "32" } @@ -10629,16 +10806,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20590:3:12" + "src": "20969:3:12" }, "nodeType": "YulFunctionCall", - "src": "20590:12:12" + "src": "20969:12:12" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "20583:3:12" + "src": "20962:3:12" } ] } @@ -10650,7 +10827,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "20376:3:12", + "src": "20755:3:12", "type": "" } ], @@ -10658,31 +10835,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "20384:3:12", + "src": "20763:3:12", "type": "" } ], - "src": "20242:366:12" + "src": "20621:366:12" }, { "body": { "nodeType": "YulBlock", - "src": "20785:248:12", + "src": "21164:248:12", "statements": [ { "nodeType": "YulAssignment", - "src": "20795:26:12", + "src": "21174:26:12", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20807:9:12" + "src": "21186:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20818:2:12", + "src": "21197:2:12", "type": "", "value": "32" } @@ -10690,16 +10867,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20803:3:12" + "src": "21182:3:12" }, "nodeType": "YulFunctionCall", - "src": "20803:18:12" + "src": "21182:18:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20795:4:12" + "src": "21174:4:12" } ] }, @@ -10711,12 +10888,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20842:9:12" + "src": "21221:9:12" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20853:1:12", + "src": "21232:1:12", "type": "", "value": "0" } @@ -10724,68 +10901,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20838:3:12" + "src": "21217:3:12" }, "nodeType": "YulFunctionCall", - "src": "20838:17:12" + "src": "21217:17:12" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20861:4:12" + "src": "21240:4:12" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20867:9:12" + "src": "21246:9:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "20857:3:12" + "src": "21236:3:12" }, "nodeType": "YulFunctionCall", - "src": "20857:20:12" + "src": "21236:20:12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20831:6:12" + "src": "21210:6:12" }, "nodeType": "YulFunctionCall", - "src": "20831:47:12" + "src": "21210:47:12" }, "nodeType": "YulExpressionStatement", - "src": "20831:47:12" + "src": "21210:47:12" }, { "nodeType": "YulAssignment", - "src": "20887:139:12", + "src": "21266:139:12", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21021:4:12" + "src": "21400:4:12" } ], "functionName": { "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "20895:124:12" + "src": "21274:124:12" }, "nodeType": "YulFunctionCall", - "src": "20895:131:12" + "src": "21274:131:12" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20887:4:12" + "src": "21266:4:12" } ] } @@ -10797,7 +10974,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "20765:9:12", + "src": "21144:9:12", "type": "" } ], @@ -10805,75 +10982,75 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "20780:4:12", + "src": "21159:4:12", "type": "" } ], - "src": "20614:419:12" + "src": "20993:419:12" }, { "body": { "nodeType": "YulBlock", - "src": "21084:146:12", + "src": "21463:146:12", "statements": [ { "nodeType": "YulAssignment", - "src": "21094:25:12", + "src": "21473:25:12", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "21117:1:12" + "src": "21496:1:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "21099:17:12" + "src": "21478:17:12" }, "nodeType": "YulFunctionCall", - "src": "21099:20:12" + "src": "21478:20:12" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "21094:1:12" + "src": "21473:1:12" } ] }, { "nodeType": "YulAssignment", - "src": "21128:25:12", + "src": "21507:25:12", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "21151:1:12" + "src": "21530:1:12" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "21133:17:12" + "src": "21512:17:12" }, "nodeType": "YulFunctionCall", - "src": "21133:20:12" + "src": "21512:20:12" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "21128:1:12" + "src": "21507:1:12" } ] }, { "body": { "nodeType": "YulBlock", - "src": "21175:22:12", + "src": "21554:22:12", "statements": [ { "expression": { @@ -10881,13 +11058,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "21177:16:12" + "src": "21556:16:12" }, "nodeType": "YulFunctionCall", - "src": "21177:18:12" + "src": "21556:18:12" }, "nodeType": "YulExpressionStatement", - "src": "21177:18:12" + "src": "21556:18:12" } ] }, @@ -10896,54 +11073,54 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "21169:1:12" + "src": "21548:1:12" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "21172:1:12" + "src": "21551:1:12" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "21166:2:12" + "src": "21545:2:12" }, "nodeType": "YulFunctionCall", - "src": "21166:8:12" + "src": "21545:8:12" }, "nodeType": "YulIf", - "src": "21163:34:12" + "src": "21542:34:12" }, { "nodeType": "YulAssignment", - "src": "21207:17:12", + "src": "21586:17:12", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "21219:1:12" + "src": "21598:1:12" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "21222:1:12" + "src": "21601:1:12" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "21215:3:12" + "src": "21594:3:12" }, "nodeType": "YulFunctionCall", - "src": "21215:9:12" + "src": "21594:9:12" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", - "src": "21207:4:12" + "src": "21586:4:12" } ] } @@ -10955,13 +11132,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "21070:1:12", + "src": "21449:1:12", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "21073:1:12", + "src": "21452:1:12", "type": "" } ], @@ -10969,16 +11146,16 @@ { "name": "diff", "nodeType": "YulTypedName", - "src": "21079:4:12", + "src": "21458:4:12", "type": "" } ], - "src": "21039:191:12" + "src": "21418:191:12" }, { "body": { "nodeType": "YulBlock", - "src": "21264:152:12", + "src": "21643:152:12", "statements": [ { "expression": { @@ -10986,14 +11163,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "21281:1:12", + "src": "21660:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21284:77:12", + "src": "21663:77:12", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } @@ -11001,13 +11178,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21274:6:12" + "src": "21653:6:12" }, "nodeType": "YulFunctionCall", - "src": "21274:88:12" + "src": "21653:88:12" }, "nodeType": "YulExpressionStatement", - "src": "21274:88:12" + "src": "21653:88:12" }, { "expression": { @@ -11015,14 +11192,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "21378:1:12", + "src": "21757:1:12", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21381:4:12", + "src": "21760:4:12", "type": "", "value": "0x31" } @@ -11030,13 +11207,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21371:6:12" + "src": "21750:6:12" }, "nodeType": "YulFunctionCall", - "src": "21371:15:12" + "src": "21750:15:12" }, "nodeType": "YulExpressionStatement", - "src": "21371:15:12" + "src": "21750:15:12" }, { "expression": { @@ -11044,14 +11221,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "21402:1:12", + "src": "21781:1:12", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21405:4:12", + "src": "21784:4:12", "type": "", "value": "0x24" } @@ -11059,31 +11236,31 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "21395:6:12" + "src": "21774:6:12" }, "nodeType": "YulFunctionCall", - "src": "21395:15:12" + "src": "21774:15:12" }, "nodeType": "YulExpressionStatement", - "src": "21395:15:12" + "src": "21774:15:12" } ] }, "name": "panic_error_0x31", "nodeType": "YulFunctionDefinition", - "src": "21236:180:12" + "src": "21615:180:12" } ] }, - "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_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := 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_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IBEERC721_$1549_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IBEERC721_$1549_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IBEERC721_$1549__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(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 array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08(memPtr) {\n\n mstore(add(memPtr, 0), \"Mintable count is not enough\")\n\n }\n\n function abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec() {\n revert(0, 0)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n\n if gt(length, 0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec() }\n length := mul(length, 0x20)\n\n copy_calldata_to_memory(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\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_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\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_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IBEERC721_$1549_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IBEERC721_$1549_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IBEERC721_$1549__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\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 array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08(memPtr) {\n\n mstore(add(memPtr, 0), \"Mintable count is not enough\")\n\n }\n\n function abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec() {\n revert(0, 0)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n\n if gt(length, 0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec() }\n length := mul(length, 0x20)\n\n copy_calldata_to_memory(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", "id": 12, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "165:6007:11:-:0;;;1102:629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1229:37;257:23;;1229:13;;;:37;;:::i;:::-;1272:38;322:24;257:23;1272:13;;;:38;;:::i;:::-;1388:36;257:23;1411:12;:10;;;:12;;:::i;:::-;1388:10;;;:36;;:::i;:::-;1430:37;257:23;1461:4;1430:10;;;:37;;:::i;:::-;1528:39;322:24;1552:14;1528:10;;;:39;;:::i;:::-;1650:10;1634:3;;:27;;;;;;;;;;;;;;;;;;1716:10;1707:6;;:19;;;;;;;;;;;;;;;;;;1102:629;;;165:6007;;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:5:-;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:9:-;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:9:-;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;88:117:12:-;197:1;194;187: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:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:663::-;933:6;941;949;998:2;986:9;977:7;973:23;969:32;966:119;;;1004:79;;:::i;:::-;966:119;1124:1;1149:64;1205:7;1196:6;1185:9;1181:22;1149:64;:::i;:::-;1139:74;;1095:128;1262:2;1288:64;1344:7;1335:6;1324:9;1320:22;1288:64;:::i;:::-;1278:74;;1233:129;1401:2;1427:64;1483:7;1474:6;1463:9;1459:22;1427:64;:::i;:::-;1417:74;;1372:129;845:663;;;;;:::o;165:6007:11:-;;;;;;;", - "deployedSourceMap": "165:6007:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5521:649:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2831:1118:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:214:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;500:20:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;284:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;524:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;220:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4636:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1431:151:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:48:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;454:41:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;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;5521:649:11:-;5583:7;5651:21;5675:11;:18;5687:5;5675:18;;;;;;;;;;;;;;;5651:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5731:13;5800:9;5795:314;5819:4;:11;5815:1;:15;5795:314;;;5895:14;5912:4;5917:1;5912:7;;;;;;;;:::i;:::-;;;;;;;;5895:24;;5982:9;:17;5992:6;5982:17;;;;;;;;;;;;;;;;;;;;;5977:126;;6087:7;;;;;:::i;:::-;;;;5977:126;5837:272;5832:3;;;;;:::i;:::-;;;;5795:314;;;;6160:5;6153:12;;;;5521:649;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4387:145::-;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;2831:1118:11:-;2078:37;322:24;2102:12;:10;:12::i;:::-;2078:10;:37::i;:::-;3015:23:::1;3032:5;3015:16;:23::i;:::-;2997:7;;:14;;:41;;2982:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;3134:21;3158:11;:18;3170:5;3158:18;;;;;;;;;;;;;;;3134:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3210:13;3233:26:::0;3276:7:::1;;:14;;3262:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3233:58;;3345:9;3340:491;3364:4;:11;3360:1;:15;3340:491;;;3390:14;3407:4;3412:1;3407:7;;;;;;;;:::i;:::-;;;;;;;;3390:24;;3466:9;:17;3476:6;3466:17;;;;;;;;;;;;;;;;;;;;;3461:364;;3562:13;3578:7;;3586:5;3578:14;;;;;;;:::i;:::-;;;;;;;;3562:30;;3602:7;;;;;:::i;:::-;;;;3639:4;3619:9;:17;3629:6;3619:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3699:3;;;;;;;;;;;:8;;;3708:5;3715;3699:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3809:6;3789:9;3799:5;3789:16;;;;;;;;:::i;:::-;;;;;;;:27;;;::::0;::::1;3485:340;3461:364;3382:449;3377:3;;;;;:::i;:::-;;;;3340:491;;;;3919:3;;;;;;;;;;;3897:47;;3904:5;3897:47;;;3925:9;3936:7;;3897:47;;;;;;;;:::i;:::-;;;;;;;;2927:1022;;;2831:1118:::0;;;:::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;500:20:11:-;;;;;;;;;;;;;:::o;284:62::-;322:24;284:62;:::o;524:21::-;;;;;;;;;;;;;:::o;220:60::-;257:23;220:60;:::o;4636:317::-;2078:37;322:24;2102:12;:10;:12::i;:::-;2078:10;:37::i;:::-;4784:9:::1;4779:170;4803:7;;:14;;4799:1;:18;4779:170;;;4907:11;:18;4919:5;4907:18;;;;;;;;;;;;;;;4931:7;;4939:1;4931:10;;;;;;;:::i;:::-;;;;;;;;4907:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:3;;;;;:::i;:::-;;;;4779:170;;;;4636:317:::0;;;:::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;380:48:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::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;454:41:11:-;;;;;;;;;;;;;;;;;;;;;;:::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:9:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::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;640:96:5:-;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;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:9:-;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;829:155:7:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;1588:441:6:-;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;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:9:-;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:12:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:77::-;2397:7;2426:5;2415:16;;2360:77;;;:::o;2443:118::-;2530:24;2548:5;2530:24;:::i;:::-;2525:3;2518:37;2443:118;;:::o;2567:222::-;2660:4;2698:2;2687:9;2683:18;2675:26;;2711:71;2779:1;2768:9;2764:17;2755:6;2711:71;:::i;:::-;2567:222;;;;:::o;2795:77::-;2832:7;2861:5;2850:16;;2795:77;;;:::o;2878:122::-;2951:24;2969:5;2951:24;:::i;:::-;2944:5;2941:35;2931:63;;2990:1;2987;2980:12;2931:63;2878:122;:::o;3006:139::-;3052:5;3090:6;3077:20;3068:29;;3106:33;3133:5;3106:33;:::i;:::-;3006:139;;;;:::o;3151:329::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;;:::i;:::-;3227:119;3385:1;3410:53;3455:7;3446:6;3435:9;3431:22;3410:53;:::i;:::-;3400:63;;3356:117;3151:329;;;;:::o;3486:118::-;3573:24;3591:5;3573:24;:::i;:::-;3568:3;3561:37;3486:118;;:::o;3610:222::-;3703:4;3741:2;3730:9;3726:18;3718:26;;3754:71;3822:1;3811:9;3807:17;3798:6;3754:71;:::i;:::-;3610:222;;;;:::o;3838:474::-;3906:6;3914;3963:2;3951:9;3942:7;3938:23;3934:32;3931:119;;;3969:79;;:::i;:::-;3931:119;4089:1;4114:53;4159:7;4150:6;4139:9;4135:22;4114:53;:::i;:::-;4104:63;;4060:117;4216:2;4242:53;4287:7;4278:6;4267:9;4263:22;4242:53;:::i;:::-;4232:63;;4187:118;3838:474;;;;;:::o;4318:117::-;4427:1;4424;4417:12;4441:117;4550:1;4547;4540:12;4564:117;4673:1;4670;4663:12;4704:568;4777:8;4787:6;4837:3;4830:4;4822:6;4818:17;4814:27;4804:122;;4845:79;;:::i;:::-;4804:122;4958:6;4945:20;4935:30;;4988:18;4980:6;4977:30;4974:117;;;5010:79;;:::i;:::-;4974:117;5124:4;5116:6;5112:17;5100:29;;5178:3;5170:4;5162:6;5158:17;5148:8;5144:32;5141:41;5138:128;;;5185:79;;:::i;:::-;5138:128;4704:568;;;;;:::o;5278:704::-;5373:6;5381;5389;5438:2;5426:9;5417:7;5413:23;5409:32;5406:119;;;5444:79;;:::i;:::-;5406:119;5564:1;5589:53;5634:7;5625:6;5614:9;5610:22;5589:53;:::i;:::-;5579:63;;5535:117;5719:2;5708:9;5704:18;5691:32;5750:18;5742:6;5739:30;5736:117;;;5772:79;;:::i;:::-;5736:117;5885:80;5957:7;5948:6;5937:9;5933:22;5885:80;:::i;:::-;5867:98;;;;5662:313;5278:704;;;;;:::o;5988:60::-;6016:3;6037:5;6030:12;;5988:60;;;:::o;6054:142::-;6104:9;6137:53;6155:34;6164:24;6182:5;6164:24;:::i;:::-;6155:34;:::i;:::-;6137:53;:::i;:::-;6124:66;;6054:142;;;:::o;6202:126::-;6252:9;6285:37;6316:5;6285:37;:::i;:::-;6272:50;;6202:126;;;:::o;6334:144::-;6402:9;6435:37;6466:5;6435:37;:::i;:::-;6422:50;;6334:144;;;:::o;6484:167::-;6589:55;6638:5;6589:55;:::i;:::-;6584:3;6577:68;6484:167;;:::o;6657:258::-;6768:4;6806:2;6795:9;6791:18;6783:26;;6819:89;6905:1;6894:9;6890:17;6881:6;6819:89;:::i;:::-;6657:258;;;;:::o;6921:118::-;7008:24;7026:5;7008:24;:::i;:::-;7003:3;6996:37;6921:118;;:::o;7045:222::-;7138:4;7176:2;7165:9;7161:18;7153:26;;7189:71;7257:1;7246:9;7242:17;7233:6;7189:71;:::i;:::-;7045:222;;;;:::o;7273:122::-;7346:24;7364:5;7346:24;:::i;:::-;7339:5;7336:35;7326:63;;7385:1;7382;7375:12;7326:63;7273:122;:::o;7401:139::-;7447:5;7485:6;7472:20;7463:29;;7501:33;7528:5;7501:33;:::i;:::-;7401:139;;;;:::o;7546:474::-;7614:6;7622;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7924:2;7950:53;7995:7;7986:6;7975:9;7971:22;7950:53;:::i;:::-;7940:63;;7895:118;7546:474;;;;;:::o;8026:::-;8094:6;8102;8151:2;8139:9;8130:7;8126:23;8122:32;8119:119;;;8157:79;;:::i;:::-;8119:119;8277:1;8302:53;8347:7;8338:6;8327:9;8323:22;8302:53;:::i;:::-;8292:63;;8248:117;8404:2;8430:53;8475:7;8466:6;8455:9;8451:22;8430:53;:::i;:::-;8420:63;;8375:118;8026:474;;;;;:::o;8506:329::-;8565:6;8614:2;8602:9;8593:7;8589:23;8585:32;8582:119;;;8620:79;;:::i;:::-;8582:119;8740:1;8765:53;8810:7;8801:6;8790:9;8786:22;8765:53;:::i;:::-;8755:63;;8711:117;8506:329;;;;:::o;8841:180::-;8889:77;8886:1;8879:88;8986:4;8983:1;8976:15;9010:4;9007:1;9000:15;9027:180;9075:77;9072:1;9065:88;9172:4;9169:1;9162:15;9196:4;9193:1;9186:15;9213:233;9252:3;9275:24;9293:5;9275:24;:::i;:::-;9266:33;;9321:66;9314:5;9311:77;9308:103;;;9391:18;;:::i;:::-;9308:103;9438:1;9431:5;9427:13;9420:20;;9213:233;;;:::o;9452:169::-;9536:11;9570:6;9565:3;9558:19;9610:4;9605:3;9601:14;9586:29;;9452:169;;;;:::o;9627:178::-;9767:30;9763:1;9755:6;9751:14;9744:54;9627:178;:::o;9811:366::-;9953:3;9974:67;10038:2;10033:3;9974:67;:::i;:::-;9967:74;;10050:93;10139:3;10050:93;:::i;:::-;10168:2;10163:3;10159:12;10152:19;;9811:366;;;:::o;10183:419::-;10349:4;10387:2;10376:9;10372:18;10364:26;;10436:9;10430:4;10426:20;10422:1;10411:9;10407:17;10400:47;10464:131;10590:4;10464:131;:::i;:::-;10456:139;;10183:419;;;:::o;10608:180::-;10656:77;10653:1;10646:88;10753:4;10750:1;10743:15;10777:4;10774:1;10767:15;10794:332;10915:4;10953:2;10942:9;10938:18;10930:26;;10966:71;11034:1;11023:9;11019:17;11010:6;10966:71;:::i;:::-;11047:72;11115:2;11104:9;11100:18;11091:6;11047:72;:::i;:::-;10794:332;;;;;:::o;11132:114::-;11199:6;11233:5;11227:12;11217:22;;11132:114;;;:::o;11252:184::-;11351:11;11385:6;11380:3;11373:19;11425:4;11420:3;11416:14;11401:29;;11252:184;;;;:::o;11442:132::-;11509:4;11532:3;11524:11;;11562:4;11557:3;11553:14;11545:22;;11442:132;;;:::o;11580:108::-;11657:24;11675:5;11657:24;:::i;:::-;11652:3;11645:37;11580:108;;:::o;11694:179::-;11763:10;11784:46;11826:3;11818:6;11784:46;:::i;:::-;11862:4;11857:3;11853:14;11839:28;;11694:179;;;;:::o;11879:113::-;11949:4;11981;11976:3;11972:14;11964:22;;11879:113;;;:::o;12028:732::-;12147:3;12176:54;12224:5;12176:54;:::i;:::-;12246:86;12325:6;12320:3;12246:86;:::i;:::-;12239:93;;12356:56;12406:5;12356:56;:::i;:::-;12435:7;12466:1;12451:284;12476:6;12473:1;12470:13;12451:284;;;12552:6;12546:13;12579:63;12638:3;12623:13;12579:63;:::i;:::-;12572:70;;12665:60;12718:6;12665:60;:::i;:::-;12655:70;;12511:224;12498:1;12495;12491:9;12486:14;;12451:284;;;12455:14;12751:3;12744:10;;12152:608;;;12028:732;;;;:::o;12766:117::-;12875:1;12872;12865:12;12889:154;12973:6;12968:3;12963;12950:30;13035:1;13026:6;13021:3;13017:16;13010:27;12889:154;;;:::o;13079:537::-;13207:3;13228:86;13307:6;13302:3;13228:86;:::i;:::-;13221:93;;13338:66;13330:6;13327:78;13324:165;;;13408:79;;:::i;:::-;13324:165;13520:4;13512:6;13508:17;13498:27;;13535:43;13571:6;13566:3;13559:5;13535:43;:::i;:::-;13603:6;13598:3;13594:16;13587:23;;13079:537;;;;;:::o;13622:654::-;13853:4;13891:2;13880:9;13876:18;13868:26;;13940:9;13934:4;13930:20;13926:1;13915:9;13911:17;13904:47;13968:108;14071:4;14062:6;13968:108;:::i;:::-;13960:116;;14123:9;14117:4;14113:20;14108:2;14097:9;14093:18;14086:48;14151:118;14264:4;14255:6;14247;14151:118;:::i;:::-;14143:126;;13622:654;;;;;;:::o;14282:234::-;14422:34;14418:1;14410:6;14406:14;14399:58;14491:17;14486:2;14478:6;14474:15;14467:42;14282:234;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:148::-;15421:11;15458:3;15443:18;;15319:148;;;;:::o;15473:173::-;15613:25;15609:1;15601:6;15597:14;15590:49;15473:173;:::o;15652:402::-;15812:3;15833:85;15915:2;15910:3;15833:85;:::i;:::-;15826:92;;15927:93;16016:3;15927:93;:::i;:::-;16045:2;16040:3;16036:12;16029:19;;15652:402;;;:::o;16060:99::-;16112:6;16146:5;16140:12;16130:22;;16060:99;;;:::o;16165:307::-;16233:1;16243:113;16257:6;16254:1;16251:13;16243:113;;;16342:1;16337:3;16333:11;16327:18;16323:1;16318:3;16314:11;16307:39;16279:2;16276:1;16272:10;16267:15;;16243:113;;;16374:6;16371:1;16368:13;16365:101;;;16454:1;16445:6;16440:3;16436:16;16429:27;16365:101;16214:258;16165:307;;;:::o;16478:377::-;16584:3;16612:39;16645:5;16612:39;:::i;:::-;16667:89;16749:6;16744:3;16667:89;:::i;:::-;16660:96;;16765:52;16810:6;16805:3;16798:4;16791:5;16787:16;16765:52;:::i;:::-;16842:6;16837:3;16833:16;16826:23;;16588:267;16478:377;;;;:::o;16861:167::-;17001:19;16997:1;16989:6;16985:14;16978:43;16861:167;:::o;17034:402::-;17194:3;17215:85;17297:2;17292:3;17215:85;:::i;:::-;17208:92;;17309:93;17398:3;17309:93;:::i;:::-;17427:2;17422:3;17418:12;17411:19;;17034:402;;;:::o;17442:967::-;17824:3;17846:148;17990:3;17846:148;:::i;:::-;17839:155;;18011:95;18102:3;18093:6;18011:95;:::i;:::-;18004:102;;18123:148;18267:3;18123:148;:::i;:::-;18116:155;;18288:95;18379:3;18370:6;18288:95;:::i;:::-;18281:102;;18400:3;18393:10;;17442:967;;;;;:::o;18415:102::-;18456:6;18507:2;18503:7;18498:2;18491:5;18487:14;18483:28;18473:38;;18415:102;;;:::o;18523:364::-;18611:3;18639:39;18672:5;18639:39;:::i;:::-;18694:71;18758:6;18753:3;18694:71;:::i;:::-;18687:78;;18774:52;18819:6;18814:3;18807:4;18800:5;18796:16;18774:52;:::i;:::-;18851:29;18873:6;18851:29;:::i;:::-;18846:3;18842:39;18835:46;;18615:272;18523:364;;;;:::o;18893:313::-;19006:4;19044:2;19033:9;19029:18;19021:26;;19093:9;19087:4;19083:20;19079:1;19068:9;19064:17;19057:47;19121:78;19194:4;19185:6;19121:78;:::i;:::-;19113:86;;18893:313;;;;:::o;19212:348::-;19252:7;19275:20;19293:1;19275:20;:::i;:::-;19270:25;;19309:20;19327:1;19309:20;:::i;:::-;19304:25;;19497:1;19429:66;19425:74;19422:1;19419:81;19414:1;19407:9;19400:17;19396:105;19393:131;;;19504:18;;:::i;:::-;19393:131;19552:1;19549;19545:9;19534:20;;19212:348;;;;:::o;19566:305::-;19606:3;19625:20;19643:1;19625:20;:::i;:::-;19620:25;;19659:20;19677:1;19659:20;:::i;:::-;19654:25;;19813:1;19745:66;19741:74;19738:1;19735:81;19732:107;;;19819:18;;:::i;:::-;19732:107;19863:1;19860;19856:9;19849:16;;19566:305;;;;:::o;19877:171::-;19916:3;19939:24;19957:5;19939:24;:::i;:::-;19930:33;;19985:4;19978:5;19975:15;19972:41;;;19993:18;;:::i;:::-;19972:41;20040:1;20033:5;20029:13;20022:20;;19877:171;;;:::o;20054:182::-;20194:34;20190:1;20182:6;20178:14;20171:58;20054:182;:::o;20242:366::-;20384:3;20405:67;20469:2;20464:3;20405:67;:::i;:::-;20398:74;;20481:93;20570:3;20481:93;:::i;:::-;20599:2;20594:3;20590:12;20583:19;;20242:366;;;:::o;20614:419::-;20780:4;20818:2;20807:9;20803:18;20795:26;;20867:9;20861:4;20857:20;20853:1;20842:9;20838:17;20831:47;20895:131;21021:4;20895:131;:::i;:::-;20887:139;;20614:419;;;:::o;21039:191::-;21079:4;21099:20;21117:1;21099:20;:::i;:::-;21094:25;;21133:20;21151:1;21133:20;:::i;:::-;21128:25;;21172:1;21169;21166:8;21163:34;;;21177:18;;:::i;:::-;21163:34;21222:1;21219;21215:9;21207:17;;21039:191;;;;:::o;21236:180::-;21284:77;21281:1;21274:88;21381:4;21378:1;21371:15;21405:4;21402:1;21395:15", - "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\nimport \"../interfaces/IBEERC721.sol\";\n\ncontract NftDistributor is AccessControlEnumerable {\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant MANAGE_ROLE = keccak256(\"MANAGE_ROLE\");\n\n // user address => nft ids\n mapping(address => uint256[]) public ownerToNFTs;\n // nft id => minted\n mapping(uint256 => bool) public nftMinted;\n\n IBEERC721 public nft;\n address public source;\n\n event Minted(\n address indexed user,\n address indexed nft,\n uint256[] nftSIds,\n uint256[] nftTIds\n );\n\n /**\n * @dev Contract constructor.\n *\n * Initializes the contract with the specified addresses and sets the admin and management roles.\n *\n * Parameters:\n * - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE\n * - _nftSource: The address of the source NFT that will check if user has mint permission.\n * - _manageAddress: The address that will have the MANAGE_ROLE assigned.\n */\n constructor(address _nftTarget, address _nftSource, address _manageAddress) {\n // Set up the ADMIN_ROLE and MANAGE_ROLE\n _setRoleAdmin(ADMIN_ROLE, ADMIN_ROLE);\n _setRoleAdmin(MANAGE_ROLE, ADMIN_ROLE);\n\n // Grant the ADMIN_ROLE to the deployer and to the contract itself\n _setupRole(ADMIN_ROLE, _msgSender());\n _setupRole(ADMIN_ROLE, address(this));\n\n // Grant the MANAGE_ROLE to the specified address\n _setupRole(MANAGE_ROLE, _manageAddress);\n\n // Initialize the nft contract with IBEERC721 interface\n nft = IBEERC721(_nftTarget);\n\n // Set the source contract address\n source = _nftSource;\n }\n\n /**\n * @dev Modifier that checks if the caller has the MANAGE_ROLE.\n *\n * The function uses the _checkRole() function from the AccessControl library.\n * If the check is successful, the code defined by the function that uses this modifier is executed.\n */\n modifier onlyManager() {\n // Check if the caller has the MANAGE_ROLE\n _checkRole(MANAGE_ROLE, _msgSender());\n // If the check is successful, execute the code in the function that uses this modifier\n _;\n }\n\n /**\n * @dev The mintToUser function mints NFTs to a given user.\n *\n * Only functions called by an address with the MANAGE_ROLE permission can access this function.\n * The function takes an array of nftIds and checks that there are enough mintable NFTs for the user.\n * It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted.\n * Then it emits the Minted event with details of the operation.\n *\n * @param _user - The address of the user receiving the NFTs\n * @param _nftIds - An array of the IDs for the NFTs being minted\n */\n function mintToUser(\n address _user,\n uint256[] calldata _nftIds\n ) external onlyManager {\n // Check that there are enough mintable NFTs\n require(\n _nftIds.length <= getMintableCount(_user),\n \"Mintable count is not enough\"\n );\n // Get the array of the user's owned NFTs\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize variables\n uint256 index = 0;\n uint256[] memory nftSource = new uint256[](_nftIds.length);\n\n // Loop through the user's owned NFTs\n for (uint256 i = 0; i < nfts.length; i++) {\n uint256 nftSId = nfts[i];\n\n // Check if the NFT is mintable\n if (!nftMinted[nftSId]) {\n // If the NFT is mintable, add it to the list to be minted\n uint256 nftId = _nftIds[index];\n index++;\n nftMinted[nftSId] = true;\n // Mint the NFT to the user's address\n nft.mint(_user, nftId);\n // Add the NFT's source ID to the list of sources\n nftSource[index] = (nftSId);\n }\n }\n // Emit event with details of the minting operation\n emit Minted(_user, address(nft), nftSource, _nftIds);\n }\n\n /**\n * @dev The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user.\n * mintToUser method would check if target user had permission to mint NFTs.\n *\n * Only functions called by an address with the MANAGE_ROLE permission can access this function.\n * The function takes in the address of the user and an array of NFT IDs. It then loops through the array\n * of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\n *\n * @param _user - The address of the user being updated with new NFT data\n * @param _nftIds - An array of NFT IDs being added to the user's NFT data\n */\n function addNFTData(\n address _user,\n uint256[] calldata _nftIds\n ) external onlyManager {\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < _nftIds.length; i++) {\n // Add each NFT ID to the end of the array of NFTs owned by the user\n ownerToNFTs[_user].push(_nftIds[i]);\n }\n }\n\n /**\n * @dev The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted.\n *\n * This is a read-only function, meaning it doesn't modify the state of the blockchain.\n * It takes in the address of the user whose mintable count is being determined,\n * and returns the number of NFTs owned by the user that have not yet been minted.\n *\n * @param _user - The address of the user whose mintable count is being determined\n * @return count - The number of NFTs owned by the user that have not yet been minted\n */\n function getMintableCount(address _user) public view returns (uint256) {\n // Get an array of all NFT IDs owned by the user\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize count to zero\n uint256 count = 0;\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < nfts.length; i++) {\n // Get the NFT ID at this index of the loop\n uint256 nftAId = nfts[i];\n // Check if the NFT has not yet been minted\n if (!nftMinted[nftAId]) {\n // If the NFT has not yet been minted, increment the mintable count\n count++;\n }\n }\n // Return the final mintable count\n return count;\n }\n}\n", + "sourceMap": "165:7541:11:-:0;;;1102:629;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1229:37;257:23;;1229:13;;;:37;;:::i;:::-;1272:38;322:24;257:23;1272:13;;;:38;;:::i;:::-;1388:36;257:23;1411:12;:10;;;:12;;:::i;:::-;1388:10;;;:36;;:::i;:::-;1430:37;257:23;1461:4;1430:10;;;:37;;:::i;:::-;1528:39;322:24;1552:14;1528:10;;;:39;;:::i;:::-;1650:10;1634:3;;:27;;;;;;;;;;;;;;;;;;1716:10;1707:6;;:19;;;;;;;;;;;;;;;;;;1102:629;;;165:7541;;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:5:-;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:9:-;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:9:-;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;88:117:12:-;197:1;194;187: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:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:663::-;933:6;941;949;998:2;986:9;977:7;973:23;969:32;966:119;;;1004:79;;:::i;:::-;966:119;1124:1;1149:64;1205:7;1196:6;1185:9;1181:22;1149:64;:::i;:::-;1139:74;;1095:128;1262:2;1288:64;1344:7;1335:6;1324:9;1320:22;1288:64;:::i;:::-;1278:74;;1233:129;1401:2;1427:64;1483:7;1474:6;1463:9;1459:22;1427:64;:::i;:::-;1417:74;;1372:129;845:663;;;;;:::o;165:7541:11:-;;;;;;;", + "deployedSourceMap": "165:7541:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6763:941:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5519:649;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2831:1116:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:214:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;500:20:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;284:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;524:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;220:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4634:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1431:151:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:48:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;454:41:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;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;6763:941:11:-;6836:16;6913:21;6937:11;:18;6949:5;6937:18;;;;;;;;;;;;;;;6913:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7058:31;7106:4;:11;7092:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7058:60;;7167:13;7236:9;7231:398;7255:4;:11;7251:1;:15;7231:398;;;7331:13;7347:4;7352:1;7347:7;;;;;;;;:::i;:::-;;;;;;;;7331:23;;7417:9;:16;7427:5;7417:16;;;;;;;;;;;;;;;;;;;;;7412:211;;7553:5;7529:14;7544:5;7529:21;;;;;;;;:::i;:::-;;;;;;;:29;;;;;7607:7;;;;;:::i;:::-;;;;7412:211;7273:356;7268:3;;;;;:::i;:::-;;;;7231:398;;;;7685:14;7678:21;;;;;6763:941;;;:::o;5519:649::-;5581:7;5649:21;5673:11;:18;5685:5;5673:18;;;;;;;;;;;;;;;5649:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5729:13;5798:9;5793:314;5817:4;:11;5813:1;:15;5793:314;;;5893:14;5910:4;5915:1;5910:7;;;;;;;;:::i;:::-;;;;;;;;5893:24;;5980:9;:17;5990:6;5980:17;;;;;;;;;;;;;;;;;;;;;5975:126;;6085:7;;;;;:::i;:::-;;;;5975:126;5835:272;5830:3;;;;;:::i;:::-;;;;5793:314;;;;6158:5;6151:12;;;;5519:649;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4387:145::-;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;2831:1116:11:-;2078:37;322:24;2102:12;:10;:12::i;:::-;2078:10;:37::i;:::-;3015:23:::1;3032:5;3015:16;:23::i;:::-;2997:7;;:14;;:41;;2982:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;3134:21;3158:11;:18;3170:5;3158:18;;;;;;;;;;;;;;;3134:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3210:13;3233:26:::0;3276:7:::1;;:14;;3262:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3233:58;;3345:9;3340:489;3364:4;:11;3360:1;:15;3340:489;;;3390:14;3407:4;3412:1;3407:7;;;;;;;;:::i;:::-;;;;;;;;3390:24;;3466:9;:17;3476:6;3466:17;;;;;;;;;;;;;;;;;;;;;3461:362;;3562:13;3578:7;;3586:5;3578:14;;;;;;;:::i;:::-;;;;;;;;3562:30;;3679:6;3660:9;3670:5;3660:16;;;;;;;;:::i;:::-;;;;;;;:25;;;::::0;::::1;3715:4;3695:9;:17;3705:6;3695:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3775:3;;;;;;;;;;;:8;;;3784:5;3791;3775:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3807:7;;;;;:::i;:::-;;;;3485:338;3461:362;3382:447;3377:3;;;;;:::i;:::-;;;;3340:489;;;;3917:3;;;;;;;;;;;3895:47;;3902:5;3895:47;;;3923:9;3934:7;;3895:47;;;;;;;;:::i;:::-;;;;;;;;2927:1020;;;2831:1116:::0;;;:::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;500:20:11:-;;;;;;;;;;;;;:::o;284:62::-;322:24;284:62;:::o;524:21::-;;;;;;;;;;;;;:::o;220:60::-;257:23;220:60;:::o;4634:317::-;2078:37;322:24;2102:12;:10;:12::i;:::-;2078:10;:37::i;:::-;4782:9:::1;4777:170;4801:7;;:14;;4797:1;:18;4777:170;;;4905:11;:18;4917:5;4905:18;;;;;;;;;;;;;;;4929:7;;4937:1;4929:10;;;;;;;:::i;:::-;;;;;;;;4905:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4817:3;;;;;:::i;:::-;;;;4777:170;;;;4634:317:::0;;;:::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;380:48:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::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;454:41:11:-;;;;;;;;;;;;;;;;;;;;;;:::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:9:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::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;640:96:5:-;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;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:9:-;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;829:155:7:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;1588:441:6:-;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;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:9:-;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:12:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:114::-;2427:6;2461:5;2455:12;2445:22;;2360:114;;;:::o;2480:184::-;2579:11;2613:6;2608:3;2601:19;2653:4;2648:3;2644:14;2629:29;;2480:184;;;;:::o;2670:132::-;2737:4;2760:3;2752:11;;2790:4;2785:3;2781:14;2773:22;;2670:132;;;:::o;2808:77::-;2845:7;2874:5;2863:16;;2808:77;;;:::o;2891:108::-;2968:24;2986:5;2968:24;:::i;:::-;2963:3;2956:37;2891:108;;:::o;3005:179::-;3074:10;3095:46;3137:3;3129:6;3095:46;:::i;:::-;3173:4;3168:3;3164:14;3150:28;;3005:179;;;;:::o;3190:113::-;3260:4;3292;3287:3;3283:14;3275:22;;3190:113;;;:::o;3339:732::-;3458:3;3487:54;3535:5;3487:54;:::i;:::-;3557:86;3636:6;3631:3;3557:86;:::i;:::-;3550:93;;3667:56;3717:5;3667:56;:::i;:::-;3746:7;3777:1;3762:284;3787:6;3784:1;3781:13;3762:284;;;3863:6;3857:13;3890:63;3949:3;3934:13;3890:63;:::i;:::-;3883:70;;3976:60;4029:6;3976:60;:::i;:::-;3966:70;;3822:224;3809:1;3806;3802:9;3797:14;;3762:284;;;3766:14;4062:3;4055:10;;3463:608;;;3339:732;;;;:::o;4077:373::-;4220:4;4258:2;4247:9;4243:18;4235:26;;4307:9;4301:4;4297:20;4293:1;4282:9;4278:17;4271:47;4335:108;4438:4;4429:6;4335:108;:::i;:::-;4327:116;;4077:373;;;;:::o;4456:118::-;4543:24;4561:5;4543:24;:::i;:::-;4538:3;4531:37;4456:118;;:::o;4580:222::-;4673:4;4711:2;4700:9;4696:18;4688:26;;4724:71;4792:1;4781:9;4777:17;4768:6;4724:71;:::i;:::-;4580:222;;;;:::o;4808:77::-;4845:7;4874:5;4863:16;;4808:77;;;:::o;4891:122::-;4964:24;4982:5;4964:24;:::i;:::-;4957:5;4954:35;4944:63;;5003:1;5000;4993:12;4944:63;4891:122;:::o;5019:139::-;5065:5;5103:6;5090:20;5081:29;;5119:33;5146:5;5119:33;:::i;:::-;5019:139;;;;:::o;5164:329::-;5223:6;5272:2;5260:9;5251:7;5247:23;5243:32;5240:119;;;5278:79;;:::i;:::-;5240:119;5398:1;5423:53;5468:7;5459:6;5448:9;5444:22;5423:53;:::i;:::-;5413:63;;5369:117;5164:329;;;;:::o;5499:118::-;5586:24;5604:5;5586:24;:::i;:::-;5581:3;5574:37;5499:118;;:::o;5623:222::-;5716:4;5754:2;5743:9;5739:18;5731:26;;5767:71;5835:1;5824:9;5820:17;5811:6;5767:71;:::i;:::-;5623:222;;;;:::o;5851:474::-;5919:6;5927;5976:2;5964:9;5955:7;5951:23;5947:32;5944:119;;;5982:79;;:::i;:::-;5944:119;6102:1;6127:53;6172:7;6163:6;6152:9;6148:22;6127:53;:::i;:::-;6117:63;;6073:117;6229:2;6255:53;6300:7;6291:6;6280:9;6276:22;6255:53;:::i;:::-;6245:63;;6200:118;5851:474;;;;;:::o;6331:117::-;6440:1;6437;6430:12;6454:117;6563:1;6560;6553:12;6577:117;6686:1;6683;6676:12;6717:568;6790:8;6800:6;6850:3;6843:4;6835:6;6831:17;6827:27;6817:122;;6858:79;;:::i;:::-;6817:122;6971:6;6958:20;6948:30;;7001:18;6993:6;6990:30;6987:117;;;7023:79;;:::i;:::-;6987:117;7137:4;7129:6;7125:17;7113:29;;7191:3;7183:4;7175:6;7171:17;7161:8;7157:32;7154:41;7151:128;;;7198:79;;:::i;:::-;7151:128;6717:568;;;;;:::o;7291:704::-;7386:6;7394;7402;7451:2;7439:9;7430:7;7426:23;7422:32;7419:119;;;7457:79;;:::i;:::-;7419:119;7577:1;7602:53;7647:7;7638:6;7627:9;7623:22;7602:53;:::i;:::-;7592:63;;7548:117;7732:2;7721:9;7717:18;7704:32;7763:18;7755:6;7752:30;7749:117;;;7785:79;;:::i;:::-;7749:117;7898:80;7970:7;7961:6;7950:9;7946:22;7898:80;:::i;:::-;7880:98;;;;7675:313;7291:704;;;;;:::o;8001:60::-;8029:3;8050:5;8043:12;;8001:60;;;:::o;8067:142::-;8117:9;8150:53;8168:34;8177:24;8195:5;8177:24;:::i;:::-;8168:34;:::i;:::-;8150:53;:::i;:::-;8137:66;;8067:142;;;:::o;8215:126::-;8265:9;8298:37;8329:5;8298:37;:::i;:::-;8285:50;;8215:126;;;:::o;8347:144::-;8415:9;8448:37;8479:5;8448:37;:::i;:::-;8435:50;;8347:144;;;:::o;8497:167::-;8602:55;8651:5;8602:55;:::i;:::-;8597:3;8590:68;8497:167;;:::o;8670:258::-;8781:4;8819:2;8808:9;8804:18;8796:26;;8832:89;8918:1;8907:9;8903:17;8894:6;8832:89;:::i;:::-;8670:258;;;;:::o;8934:118::-;9021:24;9039:5;9021:24;:::i;:::-;9016:3;9009:37;8934:118;;:::o;9058:222::-;9151:4;9189:2;9178:9;9174:18;9166:26;;9202:71;9270:1;9259:9;9255:17;9246:6;9202:71;:::i;:::-;9058:222;;;;:::o;9286:122::-;9359:24;9377:5;9359:24;:::i;:::-;9352:5;9349:35;9339:63;;9398:1;9395;9388:12;9339:63;9286:122;:::o;9414:139::-;9460:5;9498:6;9485:20;9476:29;;9514:33;9541:5;9514:33;:::i;:::-;9414:139;;;;:::o;9559:474::-;9627:6;9635;9684:2;9672:9;9663:7;9659:23;9655:32;9652:119;;;9690:79;;:::i;:::-;9652:119;9810:1;9835:53;9880:7;9871:6;9860:9;9856:22;9835:53;:::i;:::-;9825:63;;9781:117;9937:2;9963:53;10008:7;9999:6;9988:9;9984:22;9963:53;:::i;:::-;9953:63;;9908:118;9559:474;;;;;:::o;10039:::-;10107:6;10115;10164:2;10152:9;10143:7;10139:23;10135:32;10132:119;;;10170:79;;:::i;:::-;10132:119;10290:1;10315:53;10360:7;10351:6;10340:9;10336:22;10315:53;:::i;:::-;10305:63;;10261:117;10417:2;10443:53;10488:7;10479:6;10468:9;10464:22;10443:53;:::i;:::-;10433:63;;10388:118;10039:474;;;;;:::o;10519:329::-;10578:6;10627:2;10615:9;10606:7;10602:23;10598:32;10595:119;;;10633:79;;:::i;:::-;10595:119;10753:1;10778:53;10823:7;10814:6;10803:9;10799:22;10778:53;:::i;:::-;10768:63;;10724:117;10519:329;;;;:::o;10854:180::-;10902:77;10899:1;10892:88;10999:4;10996:1;10989:15;11023:4;11020:1;11013:15;11040:180;11088:77;11085:1;11078:88;11185:4;11182:1;11175:15;11209:4;11206:1;11199:15;11226:180;11274:77;11271:1;11264:88;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11412:233;11451:3;11474:24;11492:5;11474:24;:::i;:::-;11465:33;;11520:66;11513:5;11510:77;11507:103;;;11590:18;;:::i;:::-;11507:103;11637:1;11630:5;11626:13;11619:20;;11412:233;;;:::o;11651:169::-;11735:11;11769:6;11764:3;11757:19;11809:4;11804:3;11800:14;11785:29;;11651:169;;;;:::o;11826:178::-;11966:30;11962:1;11954:6;11950:14;11943:54;11826:178;:::o;12010:366::-;12152:3;12173:67;12237:2;12232:3;12173:67;:::i;:::-;12166:74;;12249:93;12338:3;12249:93;:::i;:::-;12367:2;12362:3;12358:12;12351:19;;12010:366;;;:::o;12382:419::-;12548:4;12586:2;12575:9;12571:18;12563:26;;12635:9;12629:4;12625:20;12621:1;12610:9;12606:17;12599:47;12663:131;12789:4;12663:131;:::i;:::-;12655:139;;12382:419;;;:::o;12807:332::-;12928:4;12966:2;12955:9;12951:18;12943:26;;12979:71;13047:1;13036:9;13032:17;13023:6;12979:71;:::i;:::-;13060:72;13128:2;13117:9;13113:18;13104:6;13060:72;:::i;:::-;12807:332;;;;;:::o;13145:117::-;13254:1;13251;13244:12;13268:154;13352:6;13347:3;13342;13329:30;13414:1;13405:6;13400:3;13396:16;13389:27;13268:154;;;:::o;13458:537::-;13586:3;13607:86;13686:6;13681:3;13607:86;:::i;:::-;13600:93;;13717:66;13709:6;13706:78;13703:165;;;13787:79;;:::i;:::-;13703:165;13899:4;13891:6;13887:17;13877:27;;13914:43;13950:6;13945:3;13938:5;13914:43;:::i;:::-;13982:6;13977:3;13973:16;13966:23;;13458:537;;;;;:::o;14001:654::-;14232:4;14270:2;14259:9;14255:18;14247:26;;14319:9;14313:4;14309:20;14305:1;14294:9;14290:17;14283:47;14347:108;14450:4;14441:6;14347:108;:::i;:::-;14339:116;;14502:9;14496:4;14492:20;14487:2;14476:9;14472:18;14465:48;14530:118;14643:4;14634:6;14626;14530:118;:::i;:::-;14522:126;;14001:654;;;;;;:::o;14661:234::-;14801:34;14797:1;14789:6;14785:14;14778:58;14870:17;14865:2;14857:6;14853:15;14846:42;14661:234;:::o;14901:366::-;15043:3;15064:67;15128:2;15123:3;15064:67;:::i;:::-;15057:74;;15140:93;15229:3;15140:93;:::i;:::-;15258:2;15253:3;15249:12;15242:19;;14901:366;;;:::o;15273:419::-;15439:4;15477:2;15466:9;15462:18;15454:26;;15526:9;15520:4;15516:20;15512:1;15501:9;15497:17;15490:47;15554:131;15680:4;15554:131;:::i;:::-;15546:139;;15273:419;;;:::o;15698:148::-;15800:11;15837:3;15822:18;;15698:148;;;;:::o;15852:173::-;15992:25;15988:1;15980:6;15976:14;15969:49;15852:173;:::o;16031:402::-;16191:3;16212:85;16294:2;16289:3;16212:85;:::i;:::-;16205:92;;16306:93;16395:3;16306:93;:::i;:::-;16424:2;16419:3;16415:12;16408:19;;16031:402;;;:::o;16439:99::-;16491:6;16525:5;16519:12;16509:22;;16439:99;;;:::o;16544:307::-;16612:1;16622:113;16636:6;16633:1;16630:13;16622:113;;;16721:1;16716:3;16712:11;16706:18;16702:1;16697:3;16693:11;16686:39;16658:2;16655:1;16651:10;16646:15;;16622:113;;;16753:6;16750:1;16747:13;16744:101;;;16833:1;16824:6;16819:3;16815:16;16808:27;16744:101;16593:258;16544:307;;;:::o;16857:377::-;16963:3;16991:39;17024:5;16991:39;:::i;:::-;17046:89;17128:6;17123:3;17046:89;:::i;:::-;17039:96;;17144:52;17189:6;17184:3;17177:4;17170:5;17166:16;17144:52;:::i;:::-;17221:6;17216:3;17212:16;17205:23;;16967:267;16857:377;;;;:::o;17240:167::-;17380:19;17376:1;17368:6;17364:14;17357:43;17240:167;:::o;17413:402::-;17573:3;17594:85;17676:2;17671:3;17594:85;:::i;:::-;17587:92;;17688:93;17777:3;17688:93;:::i;:::-;17806:2;17801:3;17797:12;17790:19;;17413:402;;;:::o;17821:967::-;18203:3;18225:148;18369:3;18225:148;:::i;:::-;18218:155;;18390:95;18481:3;18472:6;18390:95;:::i;:::-;18383:102;;18502:148;18646:3;18502:148;:::i;:::-;18495:155;;18667:95;18758:3;18749:6;18667:95;:::i;:::-;18660:102;;18779:3;18772:10;;17821:967;;;;;:::o;18794:102::-;18835:6;18886:2;18882:7;18877:2;18870:5;18866:14;18862:28;18852:38;;18794:102;;;:::o;18902:364::-;18990:3;19018:39;19051:5;19018:39;:::i;:::-;19073:71;19137:6;19132:3;19073:71;:::i;:::-;19066:78;;19153:52;19198:6;19193:3;19186:4;19179:5;19175:16;19153:52;:::i;:::-;19230:29;19252:6;19230:29;:::i;:::-;19225:3;19221:39;19214:46;;18994:272;18902:364;;;;:::o;19272:313::-;19385:4;19423:2;19412:9;19408:18;19400:26;;19472:9;19466:4;19462:20;19458:1;19447:9;19443:17;19436:47;19500:78;19573:4;19564:6;19500:78;:::i;:::-;19492:86;;19272:313;;;;:::o;19591:348::-;19631:7;19654:20;19672:1;19654:20;:::i;:::-;19649:25;;19688:20;19706:1;19688:20;:::i;:::-;19683:25;;19876:1;19808:66;19804:74;19801:1;19798:81;19793:1;19786:9;19779:17;19775:105;19772:131;;;19883:18;;:::i;:::-;19772:131;19931:1;19928;19924:9;19913:20;;19591:348;;;;:::o;19945:305::-;19985:3;20004:20;20022:1;20004:20;:::i;:::-;19999:25;;20038:20;20056:1;20038:20;:::i;:::-;20033:25;;20192:1;20124:66;20120:74;20117:1;20114:81;20111:107;;;20198:18;;:::i;:::-;20111:107;20242:1;20239;20235:9;20228:16;;19945:305;;;;:::o;20256:171::-;20295:3;20318:24;20336:5;20318:24;:::i;:::-;20309:33;;20364:4;20357:5;20354:15;20351:41;;;20372:18;;:::i;:::-;20351:41;20419:1;20412:5;20408:13;20401:20;;20256:171;;;:::o;20433:182::-;20573:34;20569:1;20561:6;20557:14;20550:58;20433:182;:::o;20621:366::-;20763:3;20784:67;20848:2;20843:3;20784:67;:::i;:::-;20777:74;;20860:93;20949:3;20860:93;:::i;:::-;20978:2;20973:3;20969:12;20962:19;;20621:366;;;:::o;20993:419::-;21159:4;21197:2;21186:9;21182:18;21174:26;;21246:9;21240:4;21236:20;21232:1;21221:9;21217:17;21210:47;21274:131;21400:4;21274:131;:::i;:::-;21266:139;;20993:419;;;:::o;21418:191::-;21458:4;21478:20;21496:1;21478:20;:::i;:::-;21473:25;;21512:20;21530:1;21512:20;:::i;:::-;21507:25;;21551:1;21548;21545:8;21542:34;;;21556:18;;:::i;:::-;21542:34;21601:1;21598;21594:9;21586:17;;21418:191;;;;:::o;21615:180::-;21663:77;21660:1;21653:88;21760:4;21757:1;21750:15;21784:4;21781:1;21774:15", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\nimport \"../interfaces/IBEERC721.sol\";\n\ncontract NftDistributor is AccessControlEnumerable {\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant MANAGE_ROLE = keccak256(\"MANAGE_ROLE\");\n\n // user address => nft ids\n mapping(address => uint256[]) public ownerToNFTs;\n // nft id => minted\n mapping(uint256 => bool) public nftMinted;\n\n IBEERC721 public nft;\n address public source;\n\n event Minted(\n address indexed user,\n address indexed nft,\n uint256[] nftSIds,\n uint256[] nftTIds\n );\n\n /**\n * @dev Contract constructor.\n *\n * Initializes the contract with the specified addresses and sets the admin and management roles.\n *\n * Parameters:\n * - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE\n * - _nftSource: The address of the source NFT that will check if user has mint permission.\n * - _manageAddress: The address that will have the MANAGE_ROLE assigned.\n */\n constructor(address _nftTarget, address _nftSource, address _manageAddress) {\n // Set up the ADMIN_ROLE and MANAGE_ROLE\n _setRoleAdmin(ADMIN_ROLE, ADMIN_ROLE);\n _setRoleAdmin(MANAGE_ROLE, ADMIN_ROLE);\n\n // Grant the ADMIN_ROLE to the deployer and to the contract itself\n _setupRole(ADMIN_ROLE, _msgSender());\n _setupRole(ADMIN_ROLE, address(this));\n\n // Grant the MANAGE_ROLE to the specified address\n _setupRole(MANAGE_ROLE, _manageAddress);\n\n // Initialize the nft contract with IBEERC721 interface\n nft = IBEERC721(_nftTarget);\n\n // Set the source contract address\n source = _nftSource;\n }\n\n /**\n * @dev Modifier that checks if the caller has the MANAGE_ROLE.\n *\n * The function uses the _checkRole() function from the AccessControl library.\n * If the check is successful, the code defined by the function that uses this modifier is executed.\n */\n modifier onlyManager() {\n // Check if the caller has the MANAGE_ROLE\n _checkRole(MANAGE_ROLE, _msgSender());\n // If the check is successful, execute the code in the function that uses this modifier\n _;\n }\n\n /**\n * @dev The mintToUser function mints NFTs to a given user.\n *\n * Only functions called by an address with the MANAGE_ROLE permission can access this function.\n * The function takes an array of nftIds and checks that there are enough mintable NFTs for the user.\n * It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted.\n * Then it emits the Minted event with details of the operation.\n *\n * @param _user - The address of the user receiving the NFTs\n * @param _nftIds - An array of the IDs for the NFTs being minted\n */\n function mintToUser(\n address _user,\n uint256[] calldata _nftIds\n ) external onlyManager {\n // Check that there are enough mintable NFTs\n require(\n _nftIds.length <= getMintableCount(_user),\n \"Mintable count is not enough\"\n );\n // Get the array of the user's owned NFTs\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize variables\n uint256 index = 0;\n uint256[] memory nftSource = new uint256[](_nftIds.length);\n\n // Loop through the user's owned NFTs\n for (uint256 i = 0; i < nfts.length; i++) {\n uint256 nftSId = nfts[i];\n\n // Check if the NFT is mintable\n if (!nftMinted[nftSId]) {\n // If the NFT is mintable, add it to the list to be minted\n uint256 nftId = _nftIds[index];\n // Add the NFT's source ID to the list of sources\n nftSource[index] = nftSId;\n nftMinted[nftSId] = true;\n // Mint the NFT to the user's address\n nft.mint(_user, nftId);\n index++;\n }\n }\n // Emit event with details of the minting operation\n emit Minted(_user, address(nft), nftSource, _nftIds);\n }\n\n /**\n * @dev The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user.\n * mintToUser method would check if target user had permission to mint NFTs.\n *\n * Only functions called by an address with the MANAGE_ROLE permission can access this function.\n * The function takes in the address of the user and an array of NFT IDs. It then loops through the array\n * of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\n *\n * @param _user - The address of the user being updated with new NFT data\n * @param _nftIds - An array of NFT IDs being added to the user's NFT data\n */\n function addNFTData(\n address _user,\n uint256[] calldata _nftIds\n ) external onlyManager {\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < _nftIds.length; i++) {\n // Add each NFT ID to the end of the array of NFTs owned by the user\n ownerToNFTs[_user].push(_nftIds[i]);\n }\n }\n\n /**\n * @dev The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted.\n *\n * This is a read-only function, meaning it doesn't modify the state of the blockchain.\n * It takes in the address of the user whose mintable count is being determined,\n * and returns the number of NFTs owned by the user that have not yet been minted.\n *\n * @param _user - The address of the user whose mintable count is being determined\n * @return count - The number of NFTs owned by the user that have not yet been minted\n */\n function getMintableCount(address _user) public view returns (uint256) {\n // Get an array of all NFT IDs owned by the user\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize count to zero\n uint256 count = 0;\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < nfts.length; i++) {\n // Get the NFT ID at this index of the loop\n uint256 nftAId = nfts[i];\n // Check if the NFT has not yet been minted\n if (!nftMinted[nftAId]) {\n // If the NFT has not yet been minted, increment the mintable count\n count++;\n }\n }\n // Return the final mintable count\n return count;\n }\n\n /**\n * @dev The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted.\n *\n * This is a read-only function, meaning it doesn't modify the state of the blockchain.\n * It takes in the address of the user whose mintable NFT IDs are being determined,\n * and returns an array of the NFT IDs owned by the user that have not yet been minted.\n *\n * @param _user - The address of the user whose mintable NFT IDs are being determined\n * @return mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted\n */\n function getMintableNftIds(\n address _user\n ) external view returns (uint256[] memory) {\n // Get an array of all NFT IDs owned by the user\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize an array for mintable NFT IDs with the same length as the array of all NFT IDs\n uint256[] memory mintableNftIds = new uint256[](nfts.length);\n // Initialize an index counter to zero\n uint256 index = 0;\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < nfts.length; i++) {\n // Get the NFT ID at this index of the loop\n uint256 nftId = nfts[i];\n // Check if the NFT has not yet been minted\n if (!nftMinted[nftId]) {\n // If the NFT has not yet been minted, add it to the mintable NFT IDs array\n mintableNftIds[index] = nftId;\n // Increment the index counter\n index++;\n }\n }\n // Return the array of mintable NFT IDs\n return mintableNftIds;\n }\n}\n", "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/logic/NftDistributor.sol", "ast": { "absolutePath": "project:/contracts/logic/NftDistributor.sol", @@ -11119,13 +11296,13 @@ 647 ], "NftDistributor": [ - 1850 + 1920 ], "Strings": [ 872 ] }, - "id": 1851, + "id": 1921, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -11145,7 +11322,7 @@ "id": 1552, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1851, + "scope": 1921, "sourceUnit": 434, "src": "57:68:11", "symbolAliases": [], @@ -11157,7 +11334,7 @@ "id": 1553, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 1851, + "scope": 1921, "sourceUnit": 1550, "src": "126:37:11", "symbolAliases": [], @@ -11183,9 +11360,9 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 1850, + "id": 1920, "linearizedBaseContracts": [ - 1850, + 1920, 433, 308, 896, @@ -11206,7 +11383,7 @@ "name": "ADMIN_ROLE", "nameLocation": "244:10:11", "nodeType": "VariableDeclaration", - "scope": 1850, + "scope": 1920, "src": "220:60:11", "stateVariable": true, "storageLocation": "default", @@ -11286,7 +11463,7 @@ "name": "MANAGE_ROLE", "nameLocation": "308:11:11", "nodeType": "VariableDeclaration", - "scope": 1850, + "scope": 1920, "src": "284:62:11", "stateVariable": true, "storageLocation": "default", @@ -11366,7 +11543,7 @@ "name": "ownerToNFTs", "nameLocation": "417:11:11", "nodeType": "VariableDeclaration", - "scope": 1850, + "scope": 1920, "src": "380:48:11", "stateVariable": true, "storageLocation": "default", @@ -11422,7 +11599,7 @@ "name": "nftMinted", "nameLocation": "486:9:11", "nodeType": "VariableDeclaration", - "scope": 1850, + "scope": 1920, "src": "454:41:11", "stateVariable": true, "storageLocation": "default", @@ -11469,7 +11646,7 @@ "name": "nft", "nameLocation": "517:3:11", "nodeType": "VariableDeclaration", - "scope": 1850, + "scope": 1920, "src": "500:20:11", "stateVariable": true, "storageLocation": "default", @@ -11504,7 +11681,7 @@ "name": "source", "nameLocation": "539:6:11", "nodeType": "VariableDeclaration", - "scope": 1850, + "scope": 1920, "src": "524:21:11", "stateVariable": true, "storageLocation": "default", @@ -11928,7 +12105,7 @@ "referencedDeclaration": 4294967268, "src": "1461:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_NftDistributor_$1850", + "typeIdentifier": "t_contract$_NftDistributor_$1920", "typeString": "contract NftDistributor" } } @@ -11936,7 +12113,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_NftDistributor_$1850", + "typeIdentifier": "t_contract$_NftDistributor_$1920", "typeString": "contract NftDistributor" } ], @@ -12319,7 +12496,7 @@ "parameters": [], "src": "1178:0:11" }, - "scope": 1850, + "scope": 1920, "src": "1102:629:11", "stateMutability": "nonpayable", "virtual": false, @@ -12447,9 +12624,9 @@ }, { "body": { - "id": 1762, + "id": 1761, "nodeType": "Block", - "src": "2927:1022:11", + "src": "2927:1020:11", "statements": [ { "expression": { @@ -12518,7 +12695,7 @@ "name": "getMintableCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1849, + "referencedDeclaration": 1848, "src": "3015:16:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", @@ -12619,7 +12796,7 @@ "name": "nfts", "nameLocation": "3151:4:11", "nodeType": "VariableDeclaration", - "scope": 1762, + "scope": 1761, "src": "3134:21:11", "stateVariable": false, "storageLocation": "memory", @@ -12702,7 +12879,7 @@ "name": "index", "nameLocation": "3218:5:11", "nodeType": "VariableDeclaration", - "scope": 1762, + "scope": 1761, "src": "3210:13:11", "stateVariable": false, "storageLocation": "default", @@ -12755,7 +12932,7 @@ "name": "nftSource", "nameLocation": "3250:9:11", "nodeType": "VariableDeclaration", - "scope": 1762, + "scope": 1761, "src": "3233:26:11", "stateVariable": false, "storageLocation": "memory", @@ -12873,9 +13050,9 @@ }, { "body": { - "id": 1750, + "id": 1749, "nodeType": "Block", - "src": "3382:449:11", + "src": "3382:447:11", "statements": [ { "assignments": [ @@ -12889,7 +13066,7 @@ "name": "nftSId", "nameLocation": "3398:6:11", "nodeType": "VariableDeclaration", - "scope": 1750, + "scope": 1749, "src": "3390:14:11", "stateVariable": false, "storageLocation": "default", @@ -13004,13 +13181,13 @@ "typeString": "bool" } }, - "id": 1749, + "id": 1748, "nodeType": "IfStatement", - "src": "3461:364:11", + "src": "3461:362:11", "trueBody": { - "id": 1748, + "id": 1747, "nodeType": "Block", - "src": "3485:340:11", + "src": "3485:338:11", "statements": [ { "assignments": [ @@ -13024,7 +13201,7 @@ "name": "nftId", "nameLocation": "3570:5:11", "nodeType": "VariableDeclaration", - "scope": 1748, + "scope": 1747, "src": "3562:13:11", "stateVariable": false, "storageLocation": "default", @@ -13088,64 +13265,32 @@ }, { "expression": { - "id": 1726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3602:7:11", - "subExpression": { - "id": 1725, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1683, - "src": "3602:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1727, - "nodeType": "ExpressionStatement", - "src": "3602:7:11" - }, - { - "expression": { - "id": 1732, + "id": 1729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1728, - "name": "nftMinted", + "id": 1725, + "name": "nftSource", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1574, - "src": "3619:9:11", + "referencedDeclaration": 1690, + "src": "3660:9:11", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "id": 1730, + "id": 1727, "indexExpression": { - "id": 1729, - "name": "nftSId", + "id": 1726, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1710, - "src": "3629:6:11", + "referencedDeclaration": 1683, + "src": "3670:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13156,7 +13301,75 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3619:17:11", + "src": "3660:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1728, + "name": "nftSId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "3679:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3660:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1730, + "nodeType": "ExpressionStatement", + "src": "3660:25:11" + }, + { + "expression": { + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1731, + "name": "nftMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "3695:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1733, + "indexExpression": { + "id": 1732, + "name": "nftSId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "3705:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3695:17:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13166,52 +13379,52 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1731, + "id": 1734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3639:4:11", + "src": "3715:4:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3619:24:11", + "src": "3695:24:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1733, + "id": 1736, "nodeType": "ExpressionStatement", - "src": "3619:24:11" + "src": "3695:24:11" }, { "expression": { "arguments": [ { - "id": 1737, + "id": 1740, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1655, - "src": "3708:5:11", + "src": "3784:5:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1738, + "id": 1741, "name": "nftId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1720, - "src": "3715:5:11", + "src": "3791:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13230,18 +13443,18 @@ } ], "expression": { - "id": 1734, + "id": 1737, "name": "nft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1577, - "src": "3699:3:11", + "src": "3775:3:11", "typeDescriptions": { "typeIdentifier": "t_contract$_IBEERC721_$1549", "typeString": "contract IBEERC721" } }, - "id": 1736, + "id": 1739, "isConstant": false, "isLValue": false, "isPure": false, @@ -13249,13 +13462,13 @@ "memberName": "mint", "nodeType": "MemberAccess", "referencedDeclaration": 1519, - "src": "3699:8:11", + "src": "3775:8:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1739, + "id": 1742, "isConstant": false, "isLValue": false, "isPure": false, @@ -13263,100 +13476,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3699:22:11", + "src": "3775:22:11", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1740, + "id": 1743, "nodeType": "ExpressionStatement", - "src": "3699:22:11" + "src": "3775:22:11" }, { "expression": { - "id": 1746, + "id": 1745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1741, - "name": "nftSource", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "3789:9:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1743, - "indexExpression": { - "id": 1742, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1683, - "src": "3799:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3789:16:11", + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3807:7:11", + "subExpression": { + "id": 1744, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1683, + "src": "3807:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "components": [ - { - "id": 1744, - "name": "nftSId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1710, - "src": "3809:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1745, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3808:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3789:27:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1747, + "id": 1746, "nodeType": "ExpressionStatement", - "src": "3789:27:11" + "src": "3807:7:11" } ] } @@ -13419,7 +13580,7 @@ "typeString": "bool" } }, - "id": 1751, + "id": 1750, "initializationExpression": { "assignments": [ 1699 @@ -13432,7 +13593,7 @@ "name": "i", "nameLocation": "3353:1:11", "nodeType": "VariableDeclaration", - "scope": 1751, + "scope": 1750, "src": "3345:9:11", "stateVariable": false, "storageLocation": "default", @@ -13506,18 +13667,18 @@ "src": "3377:3:11" }, "nodeType": "ForStatement", - "src": "3340:491:11" + "src": "3340:489:11" }, { "eventCall": { "arguments": [ { - "id": 1753, + "id": 1752, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1655, - "src": "3904:5:11", + "src": "3902:5:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13526,12 +13687,12 @@ { "arguments": [ { - "id": 1756, + "id": 1755, "name": "nft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1577, - "src": "3919:3:11", + "src": "3917:3:11", "typeDescriptions": { "typeIdentifier": "t_contract$_IBEERC721_$1549", "typeString": "contract IBEERC721" @@ -13545,26 +13706,26 @@ "typeString": "contract IBEERC721" } ], - "id": 1755, + "id": 1754, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3911:7:11", + "src": "3909:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1754, + "id": 1753, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3911:7:11", + "src": "3909:7:11", "typeDescriptions": {} } }, - "id": 1757, + "id": 1756, "isConstant": false, "isLValue": false, "isPure": false, @@ -13572,7 +13733,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3911:12:11", + "src": "3909:12:11", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13580,24 +13741,24 @@ } }, { - "id": 1758, + "id": 1757, "name": "nftSource", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1690, - "src": "3925:9:11", + "src": "3923:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, { - "id": 1759, + "id": 1758, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1658, - "src": "3936:7:11", + "src": "3934:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -13623,18 +13784,18 @@ "typeString": "uint256[] calldata" } ], - "id": 1752, + "id": 1751, "name": "Minted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1591, - "src": "3897:6:11", + "src": "3895:6:11", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256[] memory,uint256[] memory)" } }, - "id": 1760, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, @@ -13642,16 +13803,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3897:47:11", + "src": "3895:47:11", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1761, + "id": 1760, "nodeType": "EmitStatement", - "src": "3892:52:11" + "src": "3890:52:11" } ] }, @@ -13662,7 +13823,7 @@ "text": " @dev The mintToUser function mints NFTs to a given user.\n Only functions called by an address with the MANAGE_ROLE permission can access this function.\n The function takes an array of nftIds and checks that there are enough mintable NFTs for the user.\n It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted.\n Then it emits the Minted event with details of the operation.\n @param _user - The address of the user receiving the NFTs\n @param _nftIds - An array of the IDs for the NFTs being minted" }, "functionSelector": "36136433", - "id": 1763, + "id": 1762, "implemented": true, "kind": "function", "modifiers": [ @@ -13694,7 +13855,7 @@ "name": "_user", "nameLocation": "2864:5:11", "nodeType": "VariableDeclaration", - "scope": 1763, + "scope": 1762, "src": "2856:13:11", "stateVariable": false, "storageLocation": "default", @@ -13722,7 +13883,7 @@ "name": "_nftIds", "nameLocation": "2894:7:11", "nodeType": "VariableDeclaration", - "scope": 1763, + "scope": 1762, "src": "2875:26:11", "stateVariable": false, "storageLocation": "calldata", @@ -13760,48 +13921,48 @@ "parameters": [], "src": "2927:0:11" }, - "scope": 1850, - "src": "2831:1118:11", + "scope": 1920, + "src": "2831:1116:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1796, + "id": 1795, "nodeType": "Block", - "src": "4732:221:11", + "src": "4730:221:11", "statements": [ { "body": { - "id": 1794, + "id": 1793, "nodeType": "Block", - "src": "4824:125:11", + "src": "4822:125:11", "statements": [ { "expression": { "arguments": [ { "baseExpression": { - "id": 1789, + "id": 1788, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "4931:7:11", + "referencedDeclaration": 1768, + "src": "4929:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 1791, + "id": 1790, "indexExpression": { - "id": 1790, + "id": 1789, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "4939:1:11", + "referencedDeclaration": 1774, + "src": "4937:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13812,7 +13973,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4931:10:11", + "src": "4929:10:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13828,25 +13989,25 @@ ], "expression": { "baseExpression": { - "id": 1785, + "id": 1784, "name": "ownerToNFTs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1570, - "src": "4907:11:11", + "src": "4905:11:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 1787, + "id": 1786, "indexExpression": { - "id": 1786, + "id": 1785, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4919:5:11", + "referencedDeclaration": 1765, + "src": "4917:5:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13857,26 +14018,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4907:18:11", + "src": "4905:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 1788, + "id": 1787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "4907:23:11", + "src": "4905:23:11", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, - "id": 1792, + "id": 1791, "isConstant": false, "isLValue": false, "isPure": false, @@ -13884,16 +14045,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4907:35:11", + "src": "4905:35:11", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1793, + "id": 1792, "nodeType": "ExpressionStatement", - "src": "4907:35:11" + "src": "4905:35:11" } ] }, @@ -13902,18 +14063,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1781, + "id": 1780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1778, + "id": 1777, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "4799:1:11", + "referencedDeclaration": 1774, + "src": "4797:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13923,51 +14084,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1779, + "id": 1778, "name": "_nftIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1769, - "src": "4803:7:11", + "referencedDeclaration": 1768, + "src": "4801:7:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 1780, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4803:14:11", + "src": "4801:14:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4799:18:11", + "src": "4797:18:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1795, + "id": 1794, "initializationExpression": { "assignments": [ - 1775 + 1774 ], "declarations": [ { "constant": false, - "id": 1775, + "id": 1774, "mutability": "mutable", "name": "i", - "nameLocation": "4792:1:11", + "nameLocation": "4790:1:11", "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "4784:9:11", + "scope": 1794, + "src": "4782:9:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13975,10 +14136,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1774, + "id": 1773, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4784:7:11", + "src": "4782:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13987,17 +14148,17 @@ "visibility": "internal" } ], - "id": 1777, + "id": 1776, "initialValue": { "hexValue": "30", - "id": 1776, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4796:1:11", + "src": "4794:1:11", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -14005,11 +14166,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4784:13:11" + "src": "4782:13:11" }, "loopExpression": { "expression": { - "id": 1783, + "id": 1782, "isConstant": false, "isLValue": false, "isPure": false, @@ -14017,14 +14178,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4819:3:11", + "src": "4817:3:11", "subExpression": { - "id": 1782, + "id": 1781, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "4819:1:11", + "referencedDeclaration": 1774, + "src": "4817:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14035,56 +14196,56 @@ "typeString": "uint256" } }, - "id": 1784, + "id": 1783, "nodeType": "ExpressionStatement", - "src": "4819:3:11" + "src": "4817:3:11" }, "nodeType": "ForStatement", - "src": "4779:170:11" + "src": "4777:170:11" } ] }, "documentation": { - "id": 1764, + "id": 1763, "nodeType": "StructuredDocumentation", - "src": "3953:680:11", + "src": "3951:680:11", "text": " @dev The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user.\n mintToUser method would check if target user had permission to mint NFTs.\n Only functions called by an address with the MANAGE_ROLE permission can access this function.\n The function takes in the address of the user and an array of NFT IDs. It then loops through the array\n of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\n @param _user - The address of the user being updated with new NFT data\n @param _nftIds - An array of NFT IDs being added to the user's NFT data" }, "functionSelector": "84be00e4", - "id": 1797, + "id": 1796, "implemented": true, "kind": "function", "modifiers": [ { - "id": 1772, + "id": 1771, "kind": "modifierInvocation", "modifierName": { - "id": 1771, + "id": 1770, "name": "onlyManager", "nodeType": "IdentifierPath", "referencedDeclaration": 1652, - "src": "4720:11:11" + "src": "4718:11:11" }, "nodeType": "ModifierInvocation", - "src": "4720:11:11" + "src": "4718:11:11" } ], "name": "addNFTData", - "nameLocation": "4645:10:11", + "nameLocation": "4643:10:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 1770, + "id": 1769, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1766, + "id": 1765, "mutability": "mutable", "name": "_user", - "nameLocation": "4669:5:11", + "nameLocation": "4667:5:11", "nodeType": "VariableDeclaration", - "scope": 1797, - "src": "4661:13:11", + "scope": 1796, + "src": "4659:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14092,10 +14253,10 @@ "typeString": "address" }, "typeName": { - "id": 1765, + "id": 1764, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4661:7:11", + "src": "4659:7:11", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14106,13 +14267,13 @@ }, { "constant": false, - "id": 1769, + "id": 1768, "mutability": "mutable", "name": "_nftIds", - "nameLocation": "4699:7:11", + "nameLocation": "4697:7:11", "nodeType": "VariableDeclaration", - "scope": 1797, - "src": "4680:26:11", + "scope": 1796, + "src": "4678:26:11", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -14121,18 +14282,18 @@ }, "typeName": { "baseType": { - "id": 1767, + "id": 1766, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4680:7:11", + "src": "4678:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1768, + "id": 1767, "nodeType": "ArrayTypeName", - "src": "4680:9:11", + "src": "4678:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -14141,40 +14302,40 @@ "visibility": "internal" } ], - "src": "4655:55:11" + "src": "4653:55:11" }, "returnParameters": { - "id": 1773, + "id": 1772, "nodeType": "ParameterList", "parameters": [], - "src": "4732:0:11" + "src": "4730:0:11" }, - "scope": 1850, - "src": "4636:317:11", + "scope": 1920, + "src": "4634:317:11", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1848, + "id": 1847, "nodeType": "Block", - "src": "5592:578:11", + "src": "5590:578:11", "statements": [ { "assignments": [ - 1809 + 1808 ], "declarations": [ { "constant": false, - "id": 1809, + "id": 1808, "mutability": "mutable", "name": "nfts", - "nameLocation": "5668:4:11", + "nameLocation": "5666:4:11", "nodeType": "VariableDeclaration", - "scope": 1848, - "src": "5651:21:11", + "scope": 1847, + "src": "5649:21:11", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14183,18 +14344,18 @@ }, "typeName": { "baseType": { - "id": 1807, + "id": 1806, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5651:7:11", + "src": "5649:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1808, + "id": 1807, "nodeType": "ArrayTypeName", - "src": "5651:9:11", + "src": "5649:9:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -14203,28 +14364,28 @@ "visibility": "internal" } ], - "id": 1813, + "id": 1812, "initialValue": { "baseExpression": { - "id": 1810, + "id": 1809, "name": "ownerToNFTs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1570, - "src": "5675:11:11", + "src": "5673:11:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 1812, + "id": 1811, "indexExpression": { - "id": 1811, + "id": 1810, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "5687:5:11", + "referencedDeclaration": 1799, + "src": "5685:5:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14235,29 +14396,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5675:18:11", + "src": "5673:18:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5651:42:11" + "src": "5649:42:11" }, { "assignments": [ - 1815 + 1814 ], "declarations": [ { "constant": false, - "id": 1815, + "id": 1814, "mutability": "mutable", "name": "count", - "nameLocation": "5739:5:11", + "nameLocation": "5737:5:11", "nodeType": "VariableDeclaration", - "scope": 1848, - "src": "5731:13:11", + "scope": 1847, + "src": "5729:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14265,10 +14426,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1814, + "id": 1813, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5731:7:11", + "src": "5729:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14277,17 +14438,17 @@ "visibility": "internal" } ], - "id": 1817, + "id": 1816, "initialValue": { "hexValue": "30", - "id": 1816, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5747:1:11", + "src": "5745:1:11", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -14295,28 +14456,28 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5731:17:11" + "src": "5729:17:11" }, { "body": { - "id": 1844, + "id": 1843, "nodeType": "Block", - "src": "5837:272:11", + "src": "5835:272:11", "statements": [ { "assignments": [ - 1830 + 1829 ], "declarations": [ { "constant": false, - "id": 1830, + "id": 1829, "mutability": "mutable", "name": "nftAId", - "nameLocation": "5903:6:11", + "nameLocation": "5901:6:11", "nodeType": "VariableDeclaration", - "scope": 1844, - "src": "5895:14:11", + "scope": 1843, + "src": "5893:14:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14324,10 +14485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1829, + "id": 1828, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5895:7:11", + "src": "5893:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14336,28 +14497,28 @@ "visibility": "internal" } ], - "id": 1834, + "id": 1833, "initialValue": { "baseExpression": { - "id": 1831, + "id": 1830, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "5912:4:11", + "referencedDeclaration": 1808, + "src": "5910:4:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1833, + "id": 1832, "indexExpression": { - "id": 1832, + "id": 1831, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "5917:1:11", + "referencedDeclaration": 1818, + "src": "5915:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14368,18 +14529,18 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5912:7:11", + "src": "5910:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5895:24:11" + "src": "5893:24:11" }, { "condition": { - "id": 1838, + "id": 1837, "isConstant": false, "isLValue": false, "isPure": false, @@ -14387,28 +14548,28 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5981:18:11", + "src": "5979:18:11", "subExpression": { "baseExpression": { - "id": 1835, + "id": 1834, "name": "nftMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1574, - "src": "5982:9:11", + "src": "5980:9:11", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" } }, - "id": 1837, + "id": 1836, "indexExpression": { - "id": 1836, + "id": 1835, "name": "nftAId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "5992:6:11", + "referencedDeclaration": 1829, + "src": "5990:6:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14419,7 +14580,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5982:17:11", + "src": "5980:17:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14430,17 +14591,17 @@ "typeString": "bool" } }, - "id": 1843, + "id": 1842, "nodeType": "IfStatement", - "src": "5977:126:11", + "src": "5975:126:11", "trueBody": { - "id": 1842, + "id": 1841, "nodeType": "Block", - "src": "6001:102:11", + "src": "5999:102:11", "statements": [ { "expression": { - "id": 1840, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, @@ -14448,14 +14609,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6087:7:11", + "src": "6085:7:11", "subExpression": { - "id": 1839, + "id": 1838, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "6087:5:11", + "referencedDeclaration": 1814, + "src": "6085:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14466,9 +14627,9 @@ "typeString": "uint256" } }, - "id": 1841, + "id": 1840, "nodeType": "ExpressionStatement", - "src": "6087:7:11" + "src": "6085:7:11" } ] } @@ -14480,18 +14641,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1825, + "id": 1824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1822, + "id": 1821, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "5815:1:11", + "referencedDeclaration": 1818, + "src": "5813:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14501,51 +14662,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1823, + "id": 1822, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "5819:4:11", + "referencedDeclaration": 1808, + "src": "5817:4:11", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1824, + "id": 1823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5819:11:11", + "src": "5817:11:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5815:15:11", + "src": "5813:15:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1845, + "id": 1844, "initializationExpression": { "assignments": [ - 1819 + 1818 ], "declarations": [ { "constant": false, - "id": 1819, + "id": 1818, "mutability": "mutable", "name": "i", - "nameLocation": "5808:1:11", + "nameLocation": "5806:1:11", "nodeType": "VariableDeclaration", - "scope": 1845, - "src": "5800:9:11", + "scope": 1844, + "src": "5798:9:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14553,10 +14714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1818, + "id": 1817, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5800:7:11", + "src": "5798:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14565,17 +14726,17 @@ "visibility": "internal" } ], - "id": 1821, + "id": 1820, "initialValue": { "hexValue": "30", - "id": 1820, + "id": 1819, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5812:1:11", + "src": "5810:1:11", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -14583,11 +14744,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5800:13:11" + "src": "5798:13:11" }, "loopExpression": { "expression": { - "id": 1827, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": false, @@ -14595,14 +14756,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5832:3:11", + "src": "5830:3:11", "subExpression": { - "id": 1826, + "id": 1825, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "5832:1:11", + "referencedDeclaration": 1818, + "src": "5830:1:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14613,60 +14774,60 @@ "typeString": "uint256" } }, - "id": 1828, + "id": 1827, "nodeType": "ExpressionStatement", - "src": "5832:3:11" + "src": "5830:3:11" }, "nodeType": "ForStatement", - "src": "5795:314:11" + "src": "5793:314:11" }, { "expression": { - "id": 1846, + "id": 1845, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "6160:5:11", + "referencedDeclaration": 1814, + "src": "6158:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1804, - "id": 1847, + "functionReturnParameters": 1803, + "id": 1846, "nodeType": "Return", - "src": "6153:12:11" + "src": "6151:12:11" } ] }, "documentation": { - "id": 1798, + "id": 1797, "nodeType": "StructuredDocumentation", - "src": "4957:561:11", + "src": "4955:561:11", "text": " @dev The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted.\n This is a read-only function, meaning it doesn't modify the state of the blockchain.\n It takes in the address of the user whose mintable count is being determined,\n and returns the number of NFTs owned by the user that have not yet been minted.\n @param _user - The address of the user whose mintable count is being determined\n @return count - The number of NFTs owned by the user that have not yet been minted" }, "functionSelector": "0431f205", - "id": 1849, + "id": 1848, "implemented": true, "kind": "function", "modifiers": [], "name": "getMintableCount", - "nameLocation": "5530:16:11", + "nameLocation": "5528:16:11", "nodeType": "FunctionDefinition", "parameters": { - "id": 1801, + "id": 1800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1800, + "id": 1799, "mutability": "mutable", "name": "_user", - "nameLocation": "5555:5:11", + "nameLocation": "5553:5:11", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "5547:13:11", + "scope": 1848, + "src": "5545:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14674,10 +14835,10 @@ "typeString": "address" }, "typeName": { - "id": 1799, + "id": 1798, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5547:7:11", + "src": "5545:7:11", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14687,21 +14848,21 @@ "visibility": "internal" } ], - "src": "5546:15:11" + "src": "5544:15:11" }, "returnParameters": { - "id": 1804, + "id": 1803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 1802, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "5583:7:11", + "scope": 1848, + "src": "5581:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14709,10 +14870,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1802, + "id": 1801, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5583:7:11", + "src": "5581:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14721,21 +14882,800 @@ "visibility": "internal" } ], - "src": "5582:9:11" + "src": "5580:9:11" }, - "scope": 1850, - "src": "5521:649:11", + "scope": 1920, + "src": "5519:649:11", "stateMutability": "view", "virtual": false, "visibility": "public" + }, + { + "body": { + "id": 1918, + "nodeType": "Block", + "src": "6854:850:11", + "statements": [ + { + "assignments": [ + 1861 + ], + "declarations": [ + { + "constant": false, + "id": 1861, + "mutability": "mutable", + "name": "nfts", + "nameLocation": "6930:4:11", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "6913:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1859, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6913:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1860, + "nodeType": "ArrayTypeName", + "src": "6913:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1865, + "initialValue": { + "baseExpression": { + "id": 1862, + "name": "ownerToNFTs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "6937:11:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 1864, + "indexExpression": { + "id": 1863, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "6949:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6937:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6913:42:11" + }, + { + "assignments": [ + 1870 + ], + "declarations": [ + { + "constant": false, + "id": 1870, + "mutability": "mutable", + "name": "mintableNftIds", + "nameLocation": "7075:14:11", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "7058:31:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1868, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7058:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1869, + "nodeType": "ArrayTypeName", + "src": "7058:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1877, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1874, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1861, + "src": "7106:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7106:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7092:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1871, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7096:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1872, + "nodeType": "ArrayTypeName", + "src": "7096:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7092:26:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7058:60:11" + }, + { + "assignments": [ + 1879 + ], + "declarations": [ + { + "constant": false, + "id": 1879, + "mutability": "mutable", + "name": "index", + "nameLocation": "7175:5:11", + "nodeType": "VariableDeclaration", + "scope": 1918, + "src": "7167:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7167:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1881, + "initialValue": { + "hexValue": "30", + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7183:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7167:17:11" + }, + { + "body": { + "id": 1914, + "nodeType": "Block", + "src": "7273:356:11", + "statements": [ + { + "assignments": [ + 1894 + ], + "declarations": [ + { + "constant": false, + "id": 1894, + "mutability": "mutable", + "name": "nftId", + "nameLocation": "7339:5:11", + "nodeType": "VariableDeclaration", + "scope": 1914, + "src": "7331:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7331:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1898, + "initialValue": { + "baseExpression": { + "id": 1895, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1861, + "src": "7347:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1897, + "indexExpression": { + "id": 1896, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "7352:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7347:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7331:23:11" + }, + { + "condition": { + "id": 1902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7416:17:11", + "subExpression": { + "baseExpression": { + "id": 1899, + "name": "nftMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "7417:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1901, + "indexExpression": { + "id": 1900, + "name": "nftId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1894, + "src": "7427:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7417:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1913, + "nodeType": "IfStatement", + "src": "7412:211:11", + "trueBody": { + "id": 1912, + "nodeType": "Block", + "src": "7435:188:11", + "statements": [ + { + "expression": { + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1903, + "name": "mintableNftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "7529:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1905, + "indexExpression": { + "id": 1904, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "7544:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7529:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1906, + "name": "nftId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1894, + "src": "7553:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7529:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1908, + "nodeType": "ExpressionStatement", + "src": "7529:29:11" + }, + { + "expression": { + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7607:7:11", + "subExpression": { + "id": 1909, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "7607:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1911, + "nodeType": "ExpressionStatement", + "src": "7607:7:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1886, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "7251:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1887, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1861, + "src": "7255:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7255:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1915, + "initializationExpression": { + "assignments": [ + 1883 + ], + "declarations": [ + { + "constant": false, + "id": 1883, + "mutability": "mutable", + "name": "i", + "nameLocation": "7244:1:11", + "nodeType": "VariableDeclaration", + "scope": 1915, + "src": "7236:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1882, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7236:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1885, + "initialValue": { + "hexValue": "30", + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7248:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7236:13:11" + }, + "loopExpression": { + "expression": { + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7268:3:11", + "subExpression": { + "id": 1890, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "7268:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1892, + "nodeType": "ExpressionStatement", + "src": "7268:3:11" + }, + "nodeType": "ForStatement", + "src": "7231:398:11" + }, + { + "expression": { + "id": 1916, + "name": "mintableNftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "7685:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 1856, + "id": 1917, + "nodeType": "Return", + "src": "7678:21:11" + } + ] + }, + "documentation": { + "id": 1849, + "nodeType": "StructuredDocumentation", + "src": "6172:588:11", + "text": " @dev The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted.\n This is a read-only function, meaning it doesn't modify the state of the blockchain.\n It takes in the address of the user whose mintable NFT IDs are being determined,\n and returns an array of the NFT IDs owned by the user that have not yet been minted.\n @param _user - The address of the user whose mintable NFT IDs are being determined\n @return mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted" + }, + "functionSelector": "032221ad", + "id": 1919, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMintableNftIds", + "nameLocation": "6772:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "_user", + "nameLocation": "6803:5:11", + "nodeType": "VariableDeclaration", + "scope": 1919, + "src": "6795:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6795:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6789:23:11" + }, + "returnParameters": { + "id": 1856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1855, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1919, + "src": "6836:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6836:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1854, + "nodeType": "ArrayTypeName", + "src": "6836:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "6835:18:11" + }, + "scope": 1920, + "src": "6763:941:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" } ], - "scope": 1851, - "src": "165:6007:11", + "scope": 1921, + "src": "165:7541:11", "usedErrors": [] } ], - "src": "32:6141:11" + "src": "32:7675:11" }, "compiler": { "name": "solc", @@ -14743,7 +15683,7 @@ }, "networks": {}, "schemaVersion": "3.4.11", - "updatedAt": "2023-04-18T09:41:12.894Z", + "updatedAt": "2023-04-19T01:52:16.552Z", "devdoc": { "kind": "dev", "methods": { @@ -14766,6 +15706,15 @@ "_0": "count - The number of NFTs owned by the user that have not yet been minted" } }, + "getMintableNftIds(address)": { + "details": "The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable NFT IDs are being determined, and returns an array of the NFT IDs owned by the user that have not yet been minted.", + "params": { + "_user": "- The address of the user whose mintable NFT IDs are being determined" + }, + "returns": { + "_0": "mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted" + } + }, "getRoleAdmin(bytes32)": { "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." }, diff --git a/contracts/logic/NftDistributor.sol b/contracts/logic/NftDistributor.sol index dd4ae05..3bc838d 100644 --- a/contracts/logic/NftDistributor.sol +++ b/contracts/logic/NftDistributor.sol @@ -161,4 +161,39 @@ contract NftDistributor is AccessControlEnumerable { // Return the final mintable count return count; } + + /** + * @dev The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted. + * + * This is a read-only function, meaning it doesn't modify the state of the blockchain. + * It takes in the address of the user whose mintable NFT IDs are being determined, + * and returns an array of the NFT IDs owned by the user that have not yet been minted. + * + * @param _user - The address of the user whose mintable NFT IDs are being determined + * @return mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted + */ + function getMintableNftIds( + address _user + ) external view returns (uint256[] memory) { + // Get an array of all NFT IDs owned by the user + uint256[] memory nfts = ownerToNFTs[_user]; + // Initialize an array for mintable NFT IDs with the same length as the array of all NFT IDs + uint256[] memory mintableNftIds = new uint256[](nfts.length); + // Initialize an index counter to zero + uint256 index = 0; + // Loop through the array of NFT IDs + for (uint256 i = 0; i < nfts.length; i++) { + // Get the NFT ID at this index of the loop + uint256 nftId = nfts[i]; + // Check if the NFT has not yet been minted + if (!nftMinted[nftId]) { + // If the NFT has not yet been minted, add it to the mintable NFT IDs array + mintableNftIds[index] = nftId; + // Increment the index counter + index++; + } + } + // Return the array of mintable NFT IDs + return mintableNftIds; + } }