From fd929bb51120d0e84c56824d7ed61ca5bc8a573d Mon Sep 17 00:00:00 2001 From: mehditorabiv Date: Tue, 26 Nov 2024 11:29:03 +0300 Subject: [PATCH] update package.json --- README.md | 2 +- .../EngagementModule#Engagement.dbg.json | 4 + .../EngagementModule#Engagement.json | 892 + .../d6901d117c3065688f6f2a23c1eee1b1.json | 88397 ++++++++++++++++ .../chain-11155420/deployed_addresses.json | 3 + .../deployments/chain-11155420/journal.jsonl | 7 + package.json | 1 + 7 files changed, 89305 insertions(+), 1 deletion(-) create mode 100644 ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json create mode 100644 ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json create mode 100644 ignition/deployments/chain-11155420/build-info/d6901d117c3065688f6f2a23c1eee1b1.json create mode 100644 ignition/deployments/chain-11155420/deployed_addresses.json create mode 100644 ignition/deployments/chain-11155420/journal.jsonl diff --git a/README.md b/README.md index e9979e4..7e63b3d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuri | Address | Network | |-------------------------------------------------------------------------------------------------|--------------------------| | https://sepolia.etherscan.io/address/0x8Ff1dd3967A87C1Eb46bd60B2BBF9D7eAA987c1B | Sepolia | -| https://sepolia-optimism.etherscan.io/address/0x2cb7383D194d820FabC025C94b0265b58777CEFf#code | Optimisim Sepolia | +| https://sepolia-optimism.etherscan.io/address/0xd826769f1844CC83A16923D2AEF8a479E62Da732#code | Optimisim Sepolia | --- diff --git a/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json new file mode 100644 index 0000000..e0d2203 --- /dev/null +++ b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/d6901d117c3065688f6f2a23c1eee1b1.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json new file mode 100644 index 0000000..ae321f1 --- /dev/null +++ b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json @@ -0,0 +1,892 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Engagement", + "sourceName": "contracts/Engagement.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "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": "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": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051613e29380380613e29833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613696806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a6004803603810190610145919061216b565b6103f2565b60405161015791906121ba565b60405180910390f35b61017a6004803603810190610175919061222d565b61044c565b6040516101879190612275565b60405180910390f35b6101aa60048036038101906101a59190612290565b61048c565b6040516101b7919061234d565b60405180910390f35b6101da60048036038101906101d591906123a5565b610520565b6040516101e791906123e1565b60405180910390f35b61020a600480360381019061020591906125f9565b610540565b005b610226600480360381019061022191906126c8565b6105e8565b005b610242600480360381019061023d91906126c8565b61060a565b005b61025e600480360381019061025991906127cb565b610685565b60405161026b9190612901565b60405180910390f35b61027c61078e565b60405161028991906121ba565b60405180910390f35b6102ac60048036038101906102a79190612923565b610798565b005b6102c860048036038101906102c39190612a47565b610856565b6040516102d5919061234d565b60405180910390f35b6102f860048036038101906102f391906126c8565b610898565b6040516103059190612275565b60405180910390f35b61032860048036038101906103239190612aa3565b610903565b005b610332610967565b60405161033f91906123e1565b60405180910390f35b610362600480360381019061035d9190612b18565b61096e565b005b61036c610984565b005b610388600480360381019061038391906126c8565b610a01565b005b6103a4600480360381019061039f9190612b58565b610a23565b6040516103b19190612275565b60405180910390f35b6103d460048036038101906103cf9190612b98565b610ab7565b005b6103f060048036038101906103eb9190612c2f565b610b5f565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c41565b156104825761047b82610c8e565b9050610487565b600090505b919050565b60606002805461049b90612cb1565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cb1565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a23565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612cf1565b60405180910390fd5b6105e08686868686610d10565b505050505050565b6105f182610520565b6105fa81610e08565b6106048383610e1c565b50505050565b610612610d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f0e565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d1a565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612401565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761100190919063ffffffff16565b610754838761101590919063ffffffff16565b6103f2565b82828151811061076c5761076b612d43565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a281611029565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612d72565b60405180910390fd5b6107ff8585600185611072565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612de0565b60405180910390a35050505050565b60608261086281611029565b600561086d8561110b565b8460405160200161088093929190612fb3565b60405160208183030381529060405291505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61091081610e08565b610919826111d9565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161094b929190613089565b60405180910390a18160059081610962919061324d565b505050565b6000801b81565b610980610979610d08565b8383611220565b5050565b600060045490506109a73382600160405180602001604052806000815250611072565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36001816109f8919061334e565b60048190555050565b610a0a82610520565b610a1381610e08565b610a1d8383610f0e565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ac1610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b065750610b048682610a23565b155b15610b4a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b41929190612cf1565b60405180910390fd5b610b578686868686611390565b505050505050565b81610b6981611029565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610bdd5781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610bd4929190612d72565b60405180910390fd5b610be98686600161149b565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c319190612de0565b60405180910390a3505050505050565b6000610c6d827f01ffc9a700000000000000000000000000000000000000000000000000000000611542565b8015610c875750610c858263ffffffff60e01b611542565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d015750610d00826115e1565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d825760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d799190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610df45760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610deb9190613382565b60405180910390fd5b610e0185858585856116c3565b5050505050565b610e1981610e14610d08565b611775565b50565b6000610e288383610898565b610f035760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ea0610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f08565b600090505b92915050565b6000610f1a8383610898565b15610ff65760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f93610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610ffb565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600454811061106f57806040517fc80a970c00000000000000000000000000000000000000000000000000000000815260040161106691906121ba565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110e45760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016110db9190613382565b60405180910390fd5b6000806110f185856117c6565b915091506111036000878484876116c3565b505050505050565b60606000600161111a846117f6565b01905060008167ffffffffffffffff81111561113957611138612401565b5b6040519080825280601f01601f19166020018201604052801561116b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156111ce578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111c2576111c161339d565b5b04945060008503611179575b819350505050919050565b600081510361121d576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161121490613418565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112925760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112899190613382565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113839190612275565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114025760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f99190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114745760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161146b9190613382565b60405180910390fd5b60008061148185856117c6565b9150915061149287878484876116c3565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150d5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016115049190613382565b60405180910390fd5b60008061151a84846117c6565b9150915061153b8560008484604051806020016040528060008152506116c3565b5050505050565b600080826040516024016115569190613447565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d915060005190508280156115c9575060208210155b80156115d55750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116ac57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116bc57506116bb82611949565b5b9050919050565b6116cf858585856119b3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461176e57600061170d610d08565b9050600184510361175d57600061172e60008661101590919063ffffffff16565b9050600061174660008661101590919063ffffffff16565b9050611756838989858589611d5b565b505061176c565b61176b818787878787611f0f565b5b505b5050505050565b61177f8282610898565b6117c25780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117b9929190613462565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611854577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161184a5761184961339d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611891576d04ee2d6d415b85acef810000000083816118875761188661339d565b5b0492506020810190505b662386f26fc1000083106118c057662386f26fc1000083816118b6576118b561339d565b5b0492506010810190505b6305f5e10083106118e9576305f5e10083816118df576118de61339d565b5b0492506008810190505b612710831061190e5761271083816119045761190361339d565b5b0492506004810190505b6064831061193157606483816119275761192661339d565b5b0492506002810190505b600a8310611940576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b80518251146119fd57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016119f4929190612d1a565b60405180910390fd5b6000611a07610d08565b905060005b8351811015611c16576000611a2a828661101590919063ffffffff16565b90506000611a41838661101590919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b6e57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b1657888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b0d949392919061348b565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c09578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c01919061334e565b925050819055505b5050806001019050611a0c565b506001835103611cd5576000611c3660008561101590919063ffffffff16565b90506000611c4e60008561101590919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611cc6929190612d1a565b60405180910390a45050611d54565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d4b9291906134d0565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f07578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611dbc95949392919061355c565b6020604051808303816000875af1925050508015611df857506040513d601f19601f82011682018060405250810190611df591906135cb565b60015b611e7c573d8060008114611e28576040519150601f19603f3d011682016040523d82523d6000602084013e611e2d565b606091505b506000815103611e7457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e6b9190613382565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611efc9190613382565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156120bb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f709594939291906135f8565b6020604051808303816000875af1925050508015611fac57506040513d601f19601f82011682018060405250810190611fa991906135cb565b60015b612030573d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50600081510361202857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161201f9190613382565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120b957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120b09190613382565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612102826120d7565b9050919050565b612112816120f7565b811461211d57600080fd5b50565b60008135905061212f81612109565b92915050565b6000819050919050565b61214881612135565b811461215357600080fd5b50565b6000813590506121658161213f565b92915050565b60008060408385031215612182576121816120cd565b5b600061219085828601612120565b92505060206121a185828601612156565b9150509250929050565b6121b481612135565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61220a816121d5565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600060208284031215612243576122426120cd565b5b600061225184828501612218565b91505092915050565b60008115159050919050565b61226f8161225a565b82525050565b600060208201905061228a6000830184612266565b92915050565b6000602082840312156122a6576122a56120cd565b5b60006122b484828501612156565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122f75780820151818401526020810190506122dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061231f826122bd565b61232981856122c8565b93506123398185602086016122d9565b61234281612303565b840191505092915050565b600060208201905081810360008301526123678184612314565b905092915050565b6000819050919050565b6123828161236f565b811461238d57600080fd5b50565b60008135905061239f81612379565b92915050565b6000602082840312156123bb576123ba6120cd565b5b60006123c984828501612390565b91505092915050565b6123db8161236f565b82525050565b60006020820190506123f660008301846123d2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61243982612303565b810181811067ffffffffffffffff8211171561245857612457612401565b5b80604052505050565b600061246b6120c3565b90506124778282612430565b919050565b600067ffffffffffffffff82111561249757612496612401565b5b602082029050602081019050919050565b600080fd5b60006124c06124bb8461247c565b612461565b905080838252602082019050602084028301858111156124e3576124e26124a8565b5b835b8181101561250c57806124f88882612156565b8452602084019350506020810190506124e5565b5050509392505050565b600082601f83011261252b5761252a6123fc565b5b813561253b8482602086016124ad565b91505092915050565b600080fd5b600067ffffffffffffffff82111561256457612563612401565b5b61256d82612303565b9050602081019050919050565b82818337600083830152505050565b600061259c61259784612549565b612461565b9050828152602081018484840111156125b8576125b7612544565b5b6125c384828561257a565b509392505050565b600082601f8301126125e0576125df6123fc565b5b81356125f0848260208601612589565b91505092915050565b600080600080600060a08688031215612615576126146120cd565b5b600061262388828901612120565b955050602061263488828901612120565b945050604086013567ffffffffffffffff811115612655576126546120d2565b5b61266188828901612516565b935050606086013567ffffffffffffffff811115612682576126816120d2565b5b61268e88828901612516565b925050608086013567ffffffffffffffff8111156126af576126ae6120d2565b5b6126bb888289016125cb565b9150509295509295909350565b600080604083850312156126df576126de6120cd565b5b60006126ed85828601612390565b92505060206126fe85828601612120565b9150509250929050565b600067ffffffffffffffff82111561272357612722612401565b5b602082029050602081019050919050565b600061274761274284612708565b612461565b9050808382526020820190506020840283018581111561276a576127696124a8565b5b835b81811015612793578061277f8882612120565b84526020840193505060208101905061276c565b5050509392505050565b600082601f8301126127b2576127b16123fc565b5b81356127c2848260208601612734565b91505092915050565b600080604083850312156127e2576127e16120cd565b5b600083013567ffffffffffffffff811115612800576127ff6120d2565b5b61280c8582860161279d565b925050602083013567ffffffffffffffff81111561282d5761282c6120d2565b5b61283985828601612516565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61287881612135565b82525050565b600061288a838361286f565b60208301905092915050565b6000602082019050919050565b60006128ae82612843565b6128b8818561284e565b93506128c38361285f565b8060005b838110156128f45781516128db888261287e565b97506128e683612896565b9250506001810190506128c7565b5085935050505092915050565b6000602082019050818103600083015261291b81846128a3565b905092915050565b6000806000806080858703121561293d5761293c6120cd565b5b600061294b87828801612120565b945050602061295c87828801612156565b935050604061296d87828801612156565b925050606085013567ffffffffffffffff81111561298e5761298d6120d2565b5b61299a878288016125cb565b91505092959194509250565b600067ffffffffffffffff8211156129c1576129c0612401565b5b6129ca82612303565b9050602081019050919050565b60006129ea6129e5846129a6565b612461565b905082815260208101848484011115612a0657612a05612544565b5b612a1184828561257a565b509392505050565b600082601f830112612a2e57612a2d6123fc565b5b8135612a3e8482602086016129d7565b91505092915050565b60008060408385031215612a5e57612a5d6120cd565b5b6000612a6c85828601612156565b925050602083013567ffffffffffffffff811115612a8d57612a8c6120d2565b5b612a9985828601612a19565b9150509250929050565b600060208284031215612ab957612ab86120cd565b5b600082013567ffffffffffffffff811115612ad757612ad66120d2565b5b612ae384828501612a19565b91505092915050565b612af58161225a565b8114612b0057600080fd5b50565b600081359050612b1281612aec565b92915050565b60008060408385031215612b2f57612b2e6120cd565b5b6000612b3d85828601612120565b9250506020612b4e85828601612b03565b9150509250929050565b60008060408385031215612b6f57612b6e6120cd565b5b6000612b7d85828601612120565b9250506020612b8e85828601612120565b9150509250929050565b600080600080600060a08688031215612bb457612bb36120cd565b5b6000612bc288828901612120565b9550506020612bd388828901612120565b9450506040612be488828901612156565b9350506060612bf588828901612156565b925050608086013567ffffffffffffffff811115612c1657612c156120d2565b5b612c22888289016125cb565b9150509295509295909350565b600080600060608486031215612c4857612c476120cd565b5b6000612c5686828701612120565b9350506020612c6786828701612156565b9250506040612c7886828701612156565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612cc957607f821691505b602082108103612cdc57612cdb612c82565b5b50919050565b612ceb816120f7565b82525050565b6000604082019050612d066000830185612ce2565b612d136020830184612ce2565b9392505050565b6000604082019050612d2f60008301856121ab565b612d3c60208301846121ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612d876000830185612ce2565b612d9460208301846121ab565b9392505050565b6000819050919050565b6000819050919050565b6000612dca612dc5612dc084612d9b565b612da5565b612135565b9050919050565b612dda81612daf565b82525050565b6000602082019050612df56000830184612dd1565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612e2881612cb1565b612e328186612dfb565b94506001821660008114612e4d5760018114612e6257612e95565b60ff1983168652811515820286019350612e95565b612e6b85612e06565b60005b83811015612e8d57815481890152600182019150602081019050612e6e565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612ed4600c83612dfb565b9150612edf82612e9e565b600c82019050919050565b6000612ef5826122bd565b612eff8185612dfb565b9350612f0f8185602086016122d9565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f51600183612dfb565b9150612f5c82612f1b565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b6000612f9d601183612dfb565b9150612fa882612f67565b601182019050919050565b6000612fbf8286612e1b565b9150612fca82612ec7565b9150612fd68285612eea565b9150612fe182612f44565b9150612fed8284612eea565b9150612ff882612f90565b9150819050949350505050565b6000815461301281612cb1565b61301c81866122c8565b94506001821660008114613037576001811461304d57613080565b60ff198316865281151560200286019350613080565b61305685612e06565b60005b8381101561307857815481890152600182019150602081019050613059565b808801955050505b50505092915050565b600060408201905081810360008301526130a38185613005565b905081810360208301526130b78184612314565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261310d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130d0565b61311786836130d0565b95508019841693508086168417925050509392505050565b600061314a61314561314084612135565b612da5565b612135565b9050919050565b6000819050919050565b6131648361312f565b61317861317082613151565b8484546130dd565b825550505050565b600090565b61318d613180565b61319881848461315b565b505050565b5b818110156131bc576131b1600082613185565b60018101905061319e565b5050565b601f821115613201576131d281612e06565b6131db846130c0565b810160208510156131ea578190505b6131fe6131f6856130c0565b83018261319d565b50505b505050565b600082821c905092915050565b600061322460001984600802613206565b1980831691505092915050565b600061323d8383613213565b9150826002028217905092915050565b613256826122bd565b67ffffffffffffffff81111561326f5761326e612401565b5b6132798254612cb1565b6132848282856131c0565b600060209050601f8311600181146132b757600084156132a5578287015190505b6132af8582613231565b865550613317565b601f1984166132c586612e06565b60005b828110156132ed578489015182556001820191506020850194506020810190506132c8565b8683101561330a5784890151613306601f891682613213565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061335982612135565b915061336483612135565b925082820190508082111561337c5761337b61331f565b5b92915050565b60006020820190506133976000830184612ce2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134026013836122c8565b915061340d826133cc565b602082019050919050565b60006020820190508181036000830152613431816133f5565b9050919050565b613441816121d5565b82525050565b600060208201905061345c6000830184613438565b92915050565b60006040820190506134776000830185612ce2565b61348460208301846123d2565b9392505050565b60006080820190506134a06000830187612ce2565b6134ad60208301866121ab565b6134ba60408301856121ab565b6134c760608301846121ab565b95945050505050565b600060408201905081810360008301526134ea81856128a3565b905081810360208301526134fe81846128a3565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061352e82613507565b6135388185613512565b93506135488185602086016122d9565b61355181612303565b840191505092915050565b600060a0820190506135716000830188612ce2565b61357e6020830187612ce2565b61358b60408301866121ab565b61359860608301856121ab565b81810360808301526135aa8184613523565b90509695505050505050565b6000815190506135c581612201565b92915050565b6000602082840312156135e1576135e06120cd565b5b60006135ef848285016135b6565b91505092915050565b600060a08201905061360d6000830188612ce2565b61361a6020830187612ce2565b818103604083015261362c81866128a3565b9050818103606083015261364081856128a3565b905081810360808301526136548184613523565b9050969550505050505056fea2646970667358221220f89062492c0a90a3bf6e0872ad5b5976f927f8e47cd140986515b878c9bf129664736f6c634300081a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a6004803603810190610145919061216b565b6103f2565b60405161015791906121ba565b60405180910390f35b61017a6004803603810190610175919061222d565b61044c565b6040516101879190612275565b60405180910390f35b6101aa60048036038101906101a59190612290565b61048c565b6040516101b7919061234d565b60405180910390f35b6101da60048036038101906101d591906123a5565b610520565b6040516101e791906123e1565b60405180910390f35b61020a600480360381019061020591906125f9565b610540565b005b610226600480360381019061022191906126c8565b6105e8565b005b610242600480360381019061023d91906126c8565b61060a565b005b61025e600480360381019061025991906127cb565b610685565b60405161026b9190612901565b60405180910390f35b61027c61078e565b60405161028991906121ba565b60405180910390f35b6102ac60048036038101906102a79190612923565b610798565b005b6102c860048036038101906102c39190612a47565b610856565b6040516102d5919061234d565b60405180910390f35b6102f860048036038101906102f391906126c8565b610898565b6040516103059190612275565b60405180910390f35b61032860048036038101906103239190612aa3565b610903565b005b610332610967565b60405161033f91906123e1565b60405180910390f35b610362600480360381019061035d9190612b18565b61096e565b005b61036c610984565b005b610388600480360381019061038391906126c8565b610a01565b005b6103a4600480360381019061039f9190612b58565b610a23565b6040516103b19190612275565b60405180910390f35b6103d460048036038101906103cf9190612b98565b610ab7565b005b6103f060048036038101906103eb9190612c2f565b610b5f565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c41565b156104825761047b82610c8e565b9050610487565b600090505b919050565b60606002805461049b90612cb1565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cb1565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a23565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612cf1565b60405180910390fd5b6105e08686868686610d10565b505050505050565b6105f182610520565b6105fa81610e08565b6106048383610e1c565b50505050565b610612610d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f0e565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d1a565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612401565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761100190919063ffffffff16565b610754838761101590919063ffffffff16565b6103f2565b82828151811061076c5761076b612d43565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a281611029565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612d72565b60405180910390fd5b6107ff8585600185611072565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612de0565b60405180910390a35050505050565b60608261086281611029565b600561086d8561110b565b8460405160200161088093929190612fb3565b60405160208183030381529060405291505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61091081610e08565b610919826111d9565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161094b929190613089565b60405180910390a18160059081610962919061324d565b505050565b6000801b81565b610980610979610d08565b8383611220565b5050565b600060045490506109a73382600160405180602001604052806000815250611072565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36001816109f8919061334e565b60048190555050565b610a0a82610520565b610a1381610e08565b610a1d8383610f0e565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ac1610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b065750610b048682610a23565b155b15610b4a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b41929190612cf1565b60405180910390fd5b610b578686868686611390565b505050505050565b81610b6981611029565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610bdd5781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610bd4929190612d72565b60405180910390fd5b610be98686600161149b565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c319190612de0565b60405180910390a3505050505050565b6000610c6d827f01ffc9a700000000000000000000000000000000000000000000000000000000611542565b8015610c875750610c858263ffffffff60e01b611542565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d015750610d00826115e1565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d825760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d799190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610df45760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610deb9190613382565b60405180910390fd5b610e0185858585856116c3565b5050505050565b610e1981610e14610d08565b611775565b50565b6000610e288383610898565b610f035760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ea0610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f08565b600090505b92915050565b6000610f1a8383610898565b15610ff65760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f93610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610ffb565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600454811061106f57806040517fc80a970c00000000000000000000000000000000000000000000000000000000815260040161106691906121ba565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110e45760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016110db9190613382565b60405180910390fd5b6000806110f185856117c6565b915091506111036000878484876116c3565b505050505050565b60606000600161111a846117f6565b01905060008167ffffffffffffffff81111561113957611138612401565b5b6040519080825280601f01601f19166020018201604052801561116b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156111ce578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111c2576111c161339d565b5b04945060008503611179575b819350505050919050565b600081510361121d576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161121490613418565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112925760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112899190613382565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113839190612275565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114025760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f99190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114745760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161146b9190613382565b60405180910390fd5b60008061148185856117c6565b9150915061149287878484876116c3565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150d5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016115049190613382565b60405180910390fd5b60008061151a84846117c6565b9150915061153b8560008484604051806020016040528060008152506116c3565b5050505050565b600080826040516024016115569190613447565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d915060005190508280156115c9575060208210155b80156115d55750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116ac57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116bc57506116bb82611949565b5b9050919050565b6116cf858585856119b3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461176e57600061170d610d08565b9050600184510361175d57600061172e60008661101590919063ffffffff16565b9050600061174660008661101590919063ffffffff16565b9050611756838989858589611d5b565b505061176c565b61176b818787878787611f0f565b5b505b5050505050565b61177f8282610898565b6117c25780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117b9929190613462565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611854577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161184a5761184961339d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611891576d04ee2d6d415b85acef810000000083816118875761188661339d565b5b0492506020810190505b662386f26fc1000083106118c057662386f26fc1000083816118b6576118b561339d565b5b0492506010810190505b6305f5e10083106118e9576305f5e10083816118df576118de61339d565b5b0492506008810190505b612710831061190e5761271083816119045761190361339d565b5b0492506004810190505b6064831061193157606483816119275761192661339d565b5b0492506002810190505b600a8310611940576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b80518251146119fd57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016119f4929190612d1a565b60405180910390fd5b6000611a07610d08565b905060005b8351811015611c16576000611a2a828661101590919063ffffffff16565b90506000611a41838661101590919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b6e57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b1657888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b0d949392919061348b565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c09578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c01919061334e565b925050819055505b5050806001019050611a0c565b506001835103611cd5576000611c3660008561101590919063ffffffff16565b90506000611c4e60008561101590919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611cc6929190612d1a565b60405180910390a45050611d54565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d4b9291906134d0565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f07578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611dbc95949392919061355c565b6020604051808303816000875af1925050508015611df857506040513d601f19601f82011682018060405250810190611df591906135cb565b60015b611e7c573d8060008114611e28576040519150601f19603f3d011682016040523d82523d6000602084013e611e2d565b606091505b506000815103611e7457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e6b9190613382565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611efc9190613382565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156120bb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f709594939291906135f8565b6020604051808303816000875af1925050508015611fac57506040513d601f19601f82011682018060405250810190611fa991906135cb565b60015b612030573d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50600081510361202857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161201f9190613382565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120b957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120b09190613382565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612102826120d7565b9050919050565b612112816120f7565b811461211d57600080fd5b50565b60008135905061212f81612109565b92915050565b6000819050919050565b61214881612135565b811461215357600080fd5b50565b6000813590506121658161213f565b92915050565b60008060408385031215612182576121816120cd565b5b600061219085828601612120565b92505060206121a185828601612156565b9150509250929050565b6121b481612135565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61220a816121d5565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600060208284031215612243576122426120cd565b5b600061225184828501612218565b91505092915050565b60008115159050919050565b61226f8161225a565b82525050565b600060208201905061228a6000830184612266565b92915050565b6000602082840312156122a6576122a56120cd565b5b60006122b484828501612156565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122f75780820151818401526020810190506122dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061231f826122bd565b61232981856122c8565b93506123398185602086016122d9565b61234281612303565b840191505092915050565b600060208201905081810360008301526123678184612314565b905092915050565b6000819050919050565b6123828161236f565b811461238d57600080fd5b50565b60008135905061239f81612379565b92915050565b6000602082840312156123bb576123ba6120cd565b5b60006123c984828501612390565b91505092915050565b6123db8161236f565b82525050565b60006020820190506123f660008301846123d2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61243982612303565b810181811067ffffffffffffffff8211171561245857612457612401565b5b80604052505050565b600061246b6120c3565b90506124778282612430565b919050565b600067ffffffffffffffff82111561249757612496612401565b5b602082029050602081019050919050565b600080fd5b60006124c06124bb8461247c565b612461565b905080838252602082019050602084028301858111156124e3576124e26124a8565b5b835b8181101561250c57806124f88882612156565b8452602084019350506020810190506124e5565b5050509392505050565b600082601f83011261252b5761252a6123fc565b5b813561253b8482602086016124ad565b91505092915050565b600080fd5b600067ffffffffffffffff82111561256457612563612401565b5b61256d82612303565b9050602081019050919050565b82818337600083830152505050565b600061259c61259784612549565b612461565b9050828152602081018484840111156125b8576125b7612544565b5b6125c384828561257a565b509392505050565b600082601f8301126125e0576125df6123fc565b5b81356125f0848260208601612589565b91505092915050565b600080600080600060a08688031215612615576126146120cd565b5b600061262388828901612120565b955050602061263488828901612120565b945050604086013567ffffffffffffffff811115612655576126546120d2565b5b61266188828901612516565b935050606086013567ffffffffffffffff811115612682576126816120d2565b5b61268e88828901612516565b925050608086013567ffffffffffffffff8111156126af576126ae6120d2565b5b6126bb888289016125cb565b9150509295509295909350565b600080604083850312156126df576126de6120cd565b5b60006126ed85828601612390565b92505060206126fe85828601612120565b9150509250929050565b600067ffffffffffffffff82111561272357612722612401565b5b602082029050602081019050919050565b600061274761274284612708565b612461565b9050808382526020820190506020840283018581111561276a576127696124a8565b5b835b81811015612793578061277f8882612120565b84526020840193505060208101905061276c565b5050509392505050565b600082601f8301126127b2576127b16123fc565b5b81356127c2848260208601612734565b91505092915050565b600080604083850312156127e2576127e16120cd565b5b600083013567ffffffffffffffff811115612800576127ff6120d2565b5b61280c8582860161279d565b925050602083013567ffffffffffffffff81111561282d5761282c6120d2565b5b61283985828601612516565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61287881612135565b82525050565b600061288a838361286f565b60208301905092915050565b6000602082019050919050565b60006128ae82612843565b6128b8818561284e565b93506128c38361285f565b8060005b838110156128f45781516128db888261287e565b97506128e683612896565b9250506001810190506128c7565b5085935050505092915050565b6000602082019050818103600083015261291b81846128a3565b905092915050565b6000806000806080858703121561293d5761293c6120cd565b5b600061294b87828801612120565b945050602061295c87828801612156565b935050604061296d87828801612156565b925050606085013567ffffffffffffffff81111561298e5761298d6120d2565b5b61299a878288016125cb565b91505092959194509250565b600067ffffffffffffffff8211156129c1576129c0612401565b5b6129ca82612303565b9050602081019050919050565b60006129ea6129e5846129a6565b612461565b905082815260208101848484011115612a0657612a05612544565b5b612a1184828561257a565b509392505050565b600082601f830112612a2e57612a2d6123fc565b5b8135612a3e8482602086016129d7565b91505092915050565b60008060408385031215612a5e57612a5d6120cd565b5b6000612a6c85828601612156565b925050602083013567ffffffffffffffff811115612a8d57612a8c6120d2565b5b612a9985828601612a19565b9150509250929050565b600060208284031215612ab957612ab86120cd565b5b600082013567ffffffffffffffff811115612ad757612ad66120d2565b5b612ae384828501612a19565b91505092915050565b612af58161225a565b8114612b0057600080fd5b50565b600081359050612b1281612aec565b92915050565b60008060408385031215612b2f57612b2e6120cd565b5b6000612b3d85828601612120565b9250506020612b4e85828601612b03565b9150509250929050565b60008060408385031215612b6f57612b6e6120cd565b5b6000612b7d85828601612120565b9250506020612b8e85828601612120565b9150509250929050565b600080600080600060a08688031215612bb457612bb36120cd565b5b6000612bc288828901612120565b9550506020612bd388828901612120565b9450506040612be488828901612156565b9350506060612bf588828901612156565b925050608086013567ffffffffffffffff811115612c1657612c156120d2565b5b612c22888289016125cb565b9150509295509295909350565b600080600060608486031215612c4857612c476120cd565b5b6000612c5686828701612120565b9350506020612c6786828701612156565b9250506040612c7886828701612156565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612cc957607f821691505b602082108103612cdc57612cdb612c82565b5b50919050565b612ceb816120f7565b82525050565b6000604082019050612d066000830185612ce2565b612d136020830184612ce2565b9392505050565b6000604082019050612d2f60008301856121ab565b612d3c60208301846121ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612d876000830185612ce2565b612d9460208301846121ab565b9392505050565b6000819050919050565b6000819050919050565b6000612dca612dc5612dc084612d9b565b612da5565b612135565b9050919050565b612dda81612daf565b82525050565b6000602082019050612df56000830184612dd1565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612e2881612cb1565b612e328186612dfb565b94506001821660008114612e4d5760018114612e6257612e95565b60ff1983168652811515820286019350612e95565b612e6b85612e06565b60005b83811015612e8d57815481890152600182019150602081019050612e6e565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612ed4600c83612dfb565b9150612edf82612e9e565b600c82019050919050565b6000612ef5826122bd565b612eff8185612dfb565b9350612f0f8185602086016122d9565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f51600183612dfb565b9150612f5c82612f1b565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b6000612f9d601183612dfb565b9150612fa882612f67565b601182019050919050565b6000612fbf8286612e1b565b9150612fca82612ec7565b9150612fd68285612eea565b9150612fe182612f44565b9150612fed8284612eea565b9150612ff882612f90565b9150819050949350505050565b6000815461301281612cb1565b61301c81866122c8565b94506001821660008114613037576001811461304d57613080565b60ff198316865281151560200286019350613080565b61305685612e06565b60005b8381101561307857815481890152600182019150602081019050613059565b808801955050505b50505092915050565b600060408201905081810360008301526130a38185613005565b905081810360208301526130b78184612314565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261310d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130d0565b61311786836130d0565b95508019841693508086168417925050509392505050565b600061314a61314561314084612135565b612da5565b612135565b9050919050565b6000819050919050565b6131648361312f565b61317861317082613151565b8484546130dd565b825550505050565b600090565b61318d613180565b61319881848461315b565b505050565b5b818110156131bc576131b1600082613185565b60018101905061319e565b5050565b601f821115613201576131d281612e06565b6131db846130c0565b810160208510156131ea578190505b6131fe6131f6856130c0565b83018261319d565b50505b505050565b600082821c905092915050565b600061322460001984600802613206565b1980831691505092915050565b600061323d8383613213565b9150826002028217905092915050565b613256826122bd565b67ffffffffffffffff81111561326f5761326e612401565b5b6132798254612cb1565b6132848282856131c0565b600060209050601f8311600181146132b757600084156132a5578287015190505b6132af8582613231565b865550613317565b601f1984166132c586612e06565b60005b828110156132ed578489015182556001820191506020850194506020810190506132c8565b8683101561330a5784890151613306601f891682613213565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061335982612135565b915061336483612135565b925082820190508082111561337c5761337b61331f565b5b92915050565b60006020820190506133976000830184612ce2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134026013836122c8565b915061340d826133cc565b602082019050919050565b60006020820190508181036000830152613431816133f5565b9050919050565b613441816121d5565b82525050565b600060208201905061345c6000830184613438565b92915050565b60006040820190506134776000830185612ce2565b61348460208301846123d2565b9392505050565b60006080820190506134a06000830187612ce2565b6134ad60208301866121ab565b6134ba60408301856121ab565b6134c760608301846121ab565b95945050505050565b600060408201905081810360008301526134ea81856128a3565b905081810360208301526134fe81846128a3565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061352e82613507565b6135388185613512565b93506135488185602086016122d9565b61355181612303565b840191505092915050565b600060a0820190506135716000830188612ce2565b61357e6020830187612ce2565b61358b60408301866121ab565b61359860608301856121ab565b81810360808301526135aa8184613523565b90509695505050505050565b6000815190506135c581612201565b92915050565b6000602082840312156135e1576135e06120cd565b5b60006135ef848285016135b6565b91505092915050565b600060a08201905061360d6000830188612ce2565b61361a6020830187612ce2565b818103604083015261362c81866128a3565b9050818103606083015261364081856128a3565b905081810360808301526136548184613523565b9050969550505050505056fea2646970667358221220f89062492c0a90a3bf6e0872ad5b5976f927f8e47cd140986515b878c9bf129664736f6c634300081a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155420/build-info/d6901d117c3065688f6f2a23c1eee1b1.json b/ignition/deployments/chain-11155420/build-info/d6901d117c3065688f6f2a23c1eee1b1.json new file mode 100644 index 0000000..b923272 --- /dev/null +++ b/ignition/deployments/chain-11155420/build-info/d6901d117c3065688f6f2a23c1eee1b1.json @@ -0,0 +1,88397 @@ +{ + "id": "d6901d117c3065688f6f2a23c1eee1b1", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.26", + "solcLongVersion": "0.8.26+commit.8a97fa7a", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address account => bool) hasRole;\n bytes32 adminRole;\n }\n\n mapping(bytes32 role => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with an {AccessControlUnauthorizedAccount} error including the required role.\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n return _roles[role].hasRole[account];\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n * is missing `role`.\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert AccessControlUnauthorizedAccount(account, role);\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n if (callerConfirmation != _msgSender()) {\n revert AccessControlBadConfirmation();\n }\n\n _revokeRole(role, callerConfirmation);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n if (!hasRole(role, account)) {\n _roles[role].hasRole[account] = true;\n emit RoleGranted(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n if (hasRole(role, account)) {\n _roles[role].hasRole[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n}\n" + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/ERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"./IERC1155.sol\";\nimport {IERC1155Receiver} from \"./IERC1155Receiver.sol\";\nimport {IERC1155MetadataURI} from \"./extensions/IERC1155MetadataURI.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {Arrays} from \"../../utils/Arrays.sol\";\nimport {IERC1155Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n */\nabstract contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI, IERC1155Errors {\n using Arrays for uint256[];\n using Arrays for address[];\n\n mapping(uint256 id => mapping(address account => uint256)) private _balances;\n\n mapping(address account => mapping(address operator => bool)) private _operatorApprovals;\n\n // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json\n string private _uri;\n\n /**\n * @dev See {_setURI}.\n */\n constructor(string memory uri_) {\n _setURI(uri_);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC1155).interfaceId ||\n interfaceId == type(IERC1155MetadataURI).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC1155MetadataURI-uri}.\n *\n * This implementation returns the same URI for *all* token types. It relies\n * on the token type ID substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n *\n * Clients calling this function must replace the `\\{id\\}` substring with the\n * actual token type ID.\n */\n function uri(uint256 /* id */) public view virtual returns (string memory) {\n return _uri;\n }\n\n /**\n * @dev See {IERC1155-balanceOf}.\n */\n function balanceOf(address account, uint256 id) public view virtual returns (uint256) {\n return _balances[id][account];\n }\n\n /**\n * @dev See {IERC1155-balanceOfBatch}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] memory accounts,\n uint256[] memory ids\n ) public view virtual returns (uint256[] memory) {\n if (accounts.length != ids.length) {\n revert ERC1155InvalidArrayLength(ids.length, accounts.length);\n }\n\n uint256[] memory batchBalances = new uint256[](accounts.length);\n\n for (uint256 i = 0; i < accounts.length; ++i) {\n batchBalances[i] = balanceOf(accounts.unsafeMemoryAccess(i), ids.unsafeMemoryAccess(i));\n }\n\n return batchBalances;\n }\n\n /**\n * @dev See {IERC1155-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC1155-isApprovedForAll}.\n */\n function isApprovedForAll(address account, address operator) public view virtual returns (bool) {\n return _operatorApprovals[account][operator];\n }\n\n /**\n * @dev See {IERC1155-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeTransferFrom(from, to, id, value, data);\n }\n\n /**\n * @dev See {IERC1155-safeBatchTransferFrom}.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeBatchTransferFrom(from, to, ids, values, data);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n * (or `to`) is the zero address.\n *\n * Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n * or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n * - `ids` and `values` must have the same length.\n *\n * NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead.\n */\n function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal virtual {\n if (ids.length != values.length) {\n revert ERC1155InvalidArrayLength(ids.length, values.length);\n }\n\n address operator = _msgSender();\n\n for (uint256 i = 0; i < ids.length; ++i) {\n uint256 id = ids.unsafeMemoryAccess(i);\n uint256 value = values.unsafeMemoryAccess(i);\n\n if (from != address(0)) {\n uint256 fromBalance = _balances[id][from];\n if (fromBalance < value) {\n revert ERC1155InsufficientBalance(from, fromBalance, value, id);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance\n _balances[id][from] = fromBalance - value;\n }\n }\n\n if (to != address(0)) {\n _balances[id][to] += value;\n }\n }\n\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n emit TransferSingle(operator, from, to, id, value);\n } else {\n emit TransferBatch(operator, from, to, ids, values);\n }\n }\n\n /**\n * @dev Version of {_update} that performs the token acceptance check by calling\n * {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n * contains code (eg. is a smart contract at the moment of execution).\n *\n * IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n * update to the contract state after this function would break the check-effect-interaction pattern. Consider\n * overriding {_update} instead.\n */\n function _updateWithAcceptanceCheck(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal virtual {\n _update(from, to, ids, values);\n if (to != address(0)) {\n address operator = _msgSender();\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n _doSafeTransferAcceptanceCheck(operator, from, to, id, value, data);\n } else {\n _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, values, data);\n }\n }\n }\n\n /**\n * @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n * - `ids` and `values` must have the same length.\n */\n function _safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev Sets a new URI for all token types, by relying on the token type ID\n * substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n *\n * By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n * URI or any of the values in the JSON file at said URI will be replaced by\n * clients with the token type ID.\n *\n * For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n * interpreted by clients as\n * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n * for token type ID 0x4cce0.\n *\n * See {uri}.\n *\n * Because these URIs cannot be meaningfully represented by the {URI} event,\n * this function emits no events.\n */\n function _setURI(string memory newuri) internal virtual {\n _uri = newuri;\n }\n\n /**\n * @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _mint(address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function _mintBatch(address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens of type `id` from `from`\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n */\n function _burn(address from, uint256 id, uint256 value) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n * - `ids` and `values` must have the same length.\n */\n function _burnBatch(address from, uint256[] memory ids, uint256[] memory values) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC1155InvalidOperator(address(0));\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Performs an acceptance check by calling {IERC1155-onERC1155Received} on the `to` address\n * if it contains code at the moment of execution.\n */\n function _doSafeTransferAcceptanceCheck(\n address operator,\n address from,\n address to,\n uint256 id,\n uint256 value,\n bytes memory data\n ) private {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155Received(operator, from, id, value, data) returns (bytes4 response) {\n if (response != IERC1155Receiver.onERC1155Received.selector) {\n // Tokens rejected\n revert ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-ERC1155Receiver implementer\n revert ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Performs a batch acceptance check by calling {IERC1155-onERC1155BatchReceived} on the `to` address\n * if it contains code at the moment of execution.\n */\n function _doSafeBatchTransferAcceptanceCheck(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) private {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, values, data) returns (\n bytes4 response\n ) {\n if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {\n // Tokens rejected\n revert ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-ERC1155Receiver implementer\n revert ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Creates an array in memory with only one value for each of the elements provided.\n */\n function _asSingletonArrays(\n uint256 element1,\n uint256 element2\n ) private pure returns (uint256[] memory array1, uint256[] memory array2) {\n /// @solidity memory-safe-assembly\n assembly {\n // Load the free memory pointer\n array1 := mload(0x40)\n // Set array length to 1\n mstore(array1, 1)\n // Store the single element at the next word after the length (where content starts)\n mstore(add(array1, 0x20), element1)\n\n // Repeat for next array locating it right after the first array\n array2 := add(array1, 0x40)\n mstore(array2, 1)\n mstore(add(array2, 0x20), element2)\n\n // Update the free memory pointer by pointing after the second array\n mstore(0x40, add(array2, 0x40))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"../IERC1155.sol\";\n\n/**\n * @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\n */\ninterface IERC1155MetadataURI is IERC1155 {\n /**\n * @dev Returns the URI for token type `id`.\n *\n * If the `\\{id\\}` substring is present in the URI, it must be replaced by\n * clients with the actual token type ID.\n */\n function uri(uint256 id) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (token/ERC1155/IERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[EIP].\n */\ninterface IERC1155 is IERC165 {\n /**\n * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\n */\n event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n /**\n * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n * transfers.\n */\n event TransferBatch(\n address indexed operator,\n address indexed from,\n address indexed to,\n uint256[] ids,\n uint256[] values\n );\n\n /**\n * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n * `approved`.\n */\n event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n /**\n * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n *\n * If an {URI} event was emitted for `id`, the standard\n * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n * returned by {IERC1155MetadataURI-uri}.\n */\n event URI(string value, uint256 indexed id);\n\n /**\n * @dev Returns the value of tokens of token type `id` owned by `account`.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function balanceOf(address account, uint256 id) external view returns (uint256);\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] calldata accounts,\n uint256[] calldata ids\n ) external view returns (uint256[] memory);\n\n /**\n * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the caller.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n *\n * See {setApprovalForAll}.\n */\n function isApprovedForAll(address account, address operator) external view returns (bool);\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external;\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external;\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface that must be implemented by smart contracts in order to receive\n * ERC-1155 token transfers.\n */\ninterface IERC1155Receiver is IERC165 {\n /**\n * @dev Handles the receipt of a single ERC1155 token type. This function is\n * called at the end of a `safeTransferFrom` after the balance has been updated.\n *\n * NOTE: To accept the transfer, this must return\n * `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n * (i.e. 0xf23a6e61, or its own function selector).\n *\n * @param operator The address which initiated the transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param id The ID of the token being transferred\n * @param value The amount of tokens being transferred\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n */\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n ) external returns (bytes4);\n\n /**\n * @dev Handles the receipt of a multiple ERC1155 token types. This function\n * is called at the end of a `safeBatchTransferFrom` after the balances have\n * been updated.\n *\n * NOTE: To accept the transfer(s), this must return\n * `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n * (i.e. 0xbc197c81, or its own function selector).\n *\n * @param operator The address which initiated the batch transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param ids An array containing ids of each token being transferred (order and length must match values array)\n * @param values An array containing amounts of each token being transferred (order and length must match ids array)\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n */\n function onERC1155BatchReceived(\n address operator,\n address from,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Arrays.sol)\n\npragma solidity ^0.8.20;\n\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using StorageSlot for bytes32;\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * `array` is expected to be sorted in ascending order, and to contain no\n * repeated elements.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr`\n // following https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays.\n\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0, arr.slot)\n slot := add(keccak256(0, 0x20), pos)\n }\n return slot.getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr`\n // following https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays.\n\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0, arr.slot)\n slot := add(keccak256(0, 0x20), pos)\n }\n return slot.getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr`\n // following https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays.\n\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0, arr.slot)\n slot := add(keccak256(0, 0x20), pos)\n }\n return slot.getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165Checker.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Library used to query support of an interface declared via {IERC165}.\n *\n * Note that these functions return the actual result of the query: they do not\n * `revert` if an interface is not supported. It is up to the caller to decide\n * what to do in these cases.\n */\nlibrary ERC165Checker {\n // As per the EIP-165 spec, no interface should ever match 0xffffffff\n bytes4 private constant INTERFACE_ID_INVALID = 0xffffffff;\n\n /**\n * @dev Returns true if `account` supports the {IERC165} interface.\n */\n function supportsERC165(address account) internal view returns (bool) {\n // Any contract that implements ERC165 must explicitly indicate support of\n // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid\n return\n supportsERC165InterfaceUnchecked(account, type(IERC165).interfaceId) &&\n !supportsERC165InterfaceUnchecked(account, INTERFACE_ID_INVALID);\n }\n\n /**\n * @dev Returns true if `account` supports the interface defined by\n * `interfaceId`. Support for {IERC165} itself is queried automatically.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) {\n // query support of both ERC165 as per the spec and support of _interfaceId\n return supportsERC165(account) && supportsERC165InterfaceUnchecked(account, interfaceId);\n }\n\n /**\n * @dev Returns a boolean array where each value corresponds to the\n * interfaces passed in and whether they're supported or not. This allows\n * you to batch check interfaces for a contract where your expectation\n * is that some interfaces may not be supported.\n *\n * See {IERC165-supportsInterface}.\n */\n function getSupportedInterfaces(\n address account,\n bytes4[] memory interfaceIds\n ) internal view returns (bool[] memory) {\n // an array of booleans corresponding to interfaceIds and whether they're supported or not\n bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length);\n\n // query support of ERC165 itself\n if (supportsERC165(account)) {\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n interfaceIdsSupported[i] = supportsERC165InterfaceUnchecked(account, interfaceIds[i]);\n }\n }\n\n return interfaceIdsSupported;\n }\n\n /**\n * @dev Returns true if `account` supports all the interfaces defined in\n * `interfaceIds`. Support for {IERC165} itself is queried automatically.\n *\n * Batch-querying can lead to gas savings by skipping repeated checks for\n * {IERC165} support.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) {\n // query support of ERC165 itself\n if (!supportsERC165(account)) {\n return false;\n }\n\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n if (!supportsERC165InterfaceUnchecked(account, interfaceIds[i])) {\n return false;\n }\n }\n\n // all interfaces supported\n return true;\n }\n\n /**\n * @notice Query if a contract implements an interface, does not check ERC165 support\n * @param account The address of the contract to query for support of an interface\n * @param interfaceId The interface identifier, as specified in ERC-165\n * @return true if the contract at account indicates support of the interface with\n * identifier interfaceId, false otherwise\n * @dev Assumes that account contains a contract that supports ERC165, otherwise\n * the behavior of this method is undefined. This precondition can be checked\n * with {supportsERC165}.\n *\n * Some precompiled contracts will falsely indicate support for a given interface, so caution\n * should be exercised when using this function.\n *\n * Interface identification is specified in ERC-165.\n */\n function supportsERC165InterfaceUnchecked(address account, bytes4 interfaceId) internal view returns (bool) {\n // prepare call\n bytes memory encodedParams = abi.encodeCall(IERC165.supportsInterface, (interfaceId));\n\n // perform static call\n bool success;\n uint256 returnSize;\n uint256 returnValue;\n assembly {\n success := staticcall(30000, account, add(encodedParams, 0x20), mload(encodedParams), 0x00, 0x20)\n returnSize := returndatasize()\n returnValue := mload(0x00)\n }\n\n return success && returnSize >= 0x20 && returnValue > 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" + }, + "contracts/Engagement.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\";\nimport \"./IEngagement.sol\";\n\ncontract Engagement is IEngagement, ERC1155, AccessControl {\n using ERC165Checker for address;\n\n uint private _counter;\n string private _tokenURI;\n\n constructor(string memory tokenURI_) ERC1155(\"\") {\n requireNonEmptyURI(tokenURI_);\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _tokenURI = tokenURI_;\n }\n\n function _checkTokenId(uint tokenId) private view {\n if (tokenId >= _counter) {\n revert NotFound(tokenId);\n }\n }\n\n function requireNonEmptyURI(string memory newUri) internal pure {\n if (bytes(newUri).length == 0) {\n revert URIEmpty(\"URI cannot be empty\");\n }\n }\n\n modifier validTokenId(uint tokenId) {\n _checkTokenId(tokenId);\n _;\n }\n\n modifier onlyTokenOwner(address account, uint tokenId) {\n if (account != msg.sender) {\n revert NotAllowed(account, tokenId);\n }\n _;\n }\n\n function counter() external view returns (uint) {\n return _counter;\n }\n\n function issue() external {\n uint counterCache = _counter;\n _mint(msg.sender, counterCache, 1, \"\");\n emit Issue(msg.sender, counterCache);\n _counter = counterCache + 1;\n }\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external override validTokenId(tokenId) {\n if (balanceOf(account, tokenId) >= 1) {\n revert MintLimit(account, tokenId);\n }\n _mint(account, tokenId, 1, data);\n emit Mint(account, tokenId, 1);\n }\n\n function burn(\n address account,\n uint tokenId,\n uint amount\n ) external override validTokenId(tokenId) onlyTokenOwner(account, tokenId) {\n _burn(account, tokenId, 1);\n emit Burn(account, tokenId, 1);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(AccessControl, ERC1155) returns (bool) {\n if (address(this).supportsERC165()) {\n return super.supportsInterface(interfaceId);\n }\n return false;\n }\n\n function updateBaseURI(string memory newURI) external onlyRole(DEFAULT_ADMIN_ROLE) {\n requireNonEmptyURI(newURI);\n emit BaseURIUpdated(_tokenURI, newURI);\n _tokenURI = newURI;\n }\n\n function uri(\n uint tokenId,\n string memory account\n ) public view validTokenId(tokenId) returns (string memory) {\n return\n string(\n abi.encodePacked(_tokenURI,\"/api/v1/nft/\",Strings.toString(tokenId),\"/\",account,\"/reputation-score\")\n );\n }\n}\n" + }, + "contracts/IEngagement.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\ninterface IEngagement {\n event Issue(address indexed account, uint indexed tokenId);\n event Mint(address indexed account, uint indexed tokenId, uint amount);\n event Burn(address indexed account, uint indexed tokenId, uint amount);\n event BaseURIUpdated(string oldURI, string newURI);\n\n error NotFound(uint tokenId);\n error MintLimit(address account, uint tokenId);\n error NotAllowed(address account, uint tokenId);\n error URIEmpty(string message);\n\n function counter() external view returns (uint);\n\n function issue() external;\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external;\n\n function burn(address account, uint tokenId, uint amount) external;\n\n function updateBaseURI(string memory newURI) external;\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:60:9:\n |\n60 | uint amount,\n | ^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 1649, + "file": "contracts/Engagement.sol", + "start": 1638 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:73:9:\n |\n73 | uint amount\n | ^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 2005, + "file": "contracts/Engagement.sol", + "start": 1994 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "exportedSymbols": { + "AccessControl": [ + 295 + ], + "Context": [ + 1960 + ], + "ERC165": [ + 2349 + ], + "IAccessControl": [ + 378 + ] + }, + "id": 296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 379, + "src": "134:52:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "142:14:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 5, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 1961, + "src": "187:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 4, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "195:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../utils/introspection/ERC165.sol", + "id": 7, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 2350, + "src": "233:57:0", + "symbolAliases": [ + { + "foreign": { + "id": 6, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "241:6:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 9, + "name": "Context", + "nameLocations": [ + "1988:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1960, + "src": "1988:7:0" + }, + "id": 10, + "nodeType": "InheritanceSpecifier", + "src": "1988:7:0" + }, + { + "baseName": { + "id": 11, + "name": "IAccessControl", + "nameLocations": [ + "1997:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 378, + "src": "1997:14:0" + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "1997:14:0" + }, + { + "baseName": { + "id": 13, + "name": "ERC165", + "nameLocations": [ + "2013:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2349, + "src": "2013:6:0" + }, + "id": 14, + "nodeType": "InheritanceSpecifier", + "src": "2013:6:0" + } + ], + "canonicalName": "AccessControl", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 8, + "nodeType": "StructuredDocumentation", + "src": "292:1660:0", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role." + }, + "fullyImplemented": true, + "id": 295, + "linearizedBaseContracts": [ + 295, + 2349, + 2556, + 378, + 1960 + ], + "name": "AccessControl", + "nameLocation": "1971:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AccessControl.RoleData", + "id": 21, + "members": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "hasRole", + "nameLocation": "2085:7:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "2052:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 17, + "keyName": "account", + "keyNameLocation": "2068:7:0", + "keyType": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2060:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2052:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2079:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "2110:9:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "2102:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2102:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "2033:8:0", + "nodeType": "StructDefinition", + "scope": 295, + "src": "2026:100:0", + "visibility": "public" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "2174:6:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "2132:48:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "typeName": { + "id": 25, + "keyName": "role", + "keyNameLocation": "2148:4:0", + "keyType": { + "id": 22, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2140:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2132:33:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 24, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 23, + "name": "RoleData", + "nameLocations": [ + "2156:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 21, + "src": "2156:8:0" + }, + "referencedDeclaration": 21, + "src": "2156:8:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage_ptr", + "typeString": "struct AccessControl.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 29, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2211:18:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "2187:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "body": { + "id": 39, + "nodeType": "Block", + "src": "2454:44:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 35, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "2475:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 34, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 93, + 114 + ], + "referencedDeclaration": 93, + "src": "2464:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2464:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "2464:16:0" + }, + { + "id": 38, + "nodeType": "PlaceholderStatement", + "src": "2490:1:0" + } + ] + }, + "documentation": { + "id": 30, + "nodeType": "StructuredDocumentation", + "src": "2243:174:0", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role." + }, + "id": 40, + "name": "onlyRole", + "nameLocation": "2431:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "role", + "nameLocation": "2448:4:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2440:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 31, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2440:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2439:14:0" + }, + "src": "2422:76:0", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2348 + ], + "body": { + "id": 61, + "nodeType": "Block", + "src": "2656:111:0", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 49, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "2673:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 51, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "2693:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$378_$", + "typeString": "type(contract IAccessControl)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$378_$", + "typeString": "type(contract IAccessControl)" + } + ], + "id": 50, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2688:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2688:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$378", + "typeString": "type(contract IAccessControl)" + } + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2709:11:0", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2688:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2673:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 57, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "2748:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 55, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2724:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControl_$295_$", + "typeString": "type(contract super AccessControl)" + } + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2730:17:0", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2348, + "src": "2724:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2724:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2673:87:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 48, + "id": 60, + "nodeType": "Return", + "src": "2666:94:0" + } + ] + }, + "documentation": { + "id": 41, + "nodeType": "StructuredDocumentation", + "src": "2504:56:0", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 62, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2574:17:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 45, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2632:8:0" + }, + "parameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2599:11:0", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "2592:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 42, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2592:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2591:20:0" + }, + "returnParameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "2650:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 46, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2650:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2649:6:0" + }, + "scope": 295, + "src": "2565:202:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 345 + ], + "body": { + "id": 79, + "nodeType": "Block", + "src": "2937:53:0", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 72, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "2954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 74, + "indexExpression": { + "id": 73, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "2961:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 75, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2967:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "2954:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 77, + "indexExpression": { + "id": 76, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 71, + "id": 78, + "nodeType": "Return", + "src": "2947:36:0" + } + ] + }, + "documentation": { + "id": 63, + "nodeType": "StructuredDocumentation", + "src": "2773:76:0", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 80, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "2863:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "role", + "nameLocation": "2879:4:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2871:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 64, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2871:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "account", + "nameLocation": "2893:7:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2885:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2885:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2870:31:0" + }, + "returnParameters": { + "id": 71, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2931:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 69, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2931:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2930:6:0" + }, + "scope": 295, + "src": "2854:136:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 92, + "nodeType": "Block", + "src": "3255:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 87, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "3276:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 88, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "3282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3282:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 86, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 93, + 114 + ], + "referencedDeclaration": 114, + "src": "3265:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3265:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "3265:30:0" + } + ] + }, + "documentation": { + "id": 81, + "nodeType": "StructuredDocumentation", + "src": "2996:198:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier." + }, + "id": 93, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3208:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "role", + "nameLocation": "3227:4:0", + "nodeType": "VariableDeclaration", + "scope": 93, + "src": "3219:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 82, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3219:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3218:14:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:0" + }, + "scope": 295, + "src": "3199:103:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 113, + "nodeType": "Block", + "src": "3505:124:0", + "statements": [ + { + "condition": { + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3519:23:0", + "subExpression": { + "arguments": [ + { + "id": 102, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3528:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 103, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "3534:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 101, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "3520:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3520:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 112, + "nodeType": "IfStatement", + "src": "3515:108:0", + "trueBody": { + "id": 111, + "nodeType": "Block", + "src": "3544:79:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 107, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "3598:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 108, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 106, + "name": "AccessControlUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "3565:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" + } + }, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3565:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 110, + "nodeType": "RevertStatement", + "src": "3558:54:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 94, + "nodeType": "StructuredDocumentation", + "src": "3308:119:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`." + }, + "id": 114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3441:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 99, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "role", + "nameLocation": "3460:4:0", + "nodeType": "VariableDeclaration", + "scope": 114, + "src": "3452:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 95, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3452:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "account", + "nameLocation": "3474:7:0", + "nodeType": "VariableDeclaration", + "scope": 114, + "src": "3466:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 97, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3466:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3451:31:0" + }, + "returnParameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [], + "src": "3505:0:0" + }, + "scope": 295, + "src": "3432:197:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 353 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "3884:46:0", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 122, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "3901:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 124, + "indexExpression": { + "id": 123, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "3908:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3914:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "3901:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 121, + "id": 126, + "nodeType": "Return", + "src": "3894:29:0" + } + ] + }, + "documentation": { + "id": 115, + "nodeType": "StructuredDocumentation", + "src": "3635:170:0", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "3819:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "role", + "nameLocation": "3840:4:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "3832:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 116, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3832:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3831:14:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "3875:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3875:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3874:9:0" + }, + "scope": 295, + "src": "3810:120:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 361 + ], + "body": { + "id": 146, + "nodeType": "Block", + "src": "4320:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 142, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "4341:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 143, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "4347:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 141, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "4330:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4330:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 145, + "nodeType": "ExpressionStatement", + "src": "4330:25:0" + } + ] + }, + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "3936:285:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event." + }, + "functionSelector": "2f2ff15d", + "id": 147, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 137, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "4313:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 136, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "4300:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4300:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 139, + "kind": "modifierInvocation", + "modifierName": { + "id": 135, + "name": "onlyRole", + "nameLocations": [ + "4291:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4291:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4291:28:0" + } + ], + "name": "grantRole", + "nameLocation": "4235:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "role", + "nameLocation": "4253:4:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "4245:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4245:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "account", + "nameLocation": "4267:7:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "4259:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4259:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4244:31:0" + }, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [], + "src": "4320:0:0" + }, + "scope": 295, + "src": "4226:136:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 369 + ], + "body": { + "id": 165, + "nodeType": "Block", + "src": "4737:43:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 161, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4759:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 162, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "4765:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 160, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "4747:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4747:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "4747:26:0" + } + ] + }, + "documentation": { + "id": 148, + "nodeType": "StructuredDocumentation", + "src": "4368:269:0", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "d547741f", + "id": 166, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 156, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4730:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 155, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "4717:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4717:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 158, + "kind": "modifierInvocation", + "modifierName": { + "id": 154, + "name": "onlyRole", + "nameLocations": [ + "4708:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4708:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4708:28:0" + } + ], + "name": "revokeRole", + "nameLocation": "4651:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 150, + "mutability": "mutable", + "name": "role", + "nameLocation": "4670:4:0", + "nodeType": "VariableDeclaration", + "scope": 166, + "src": "4662:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "mutability": "mutable", + "name": "account", + "nameLocation": "4684:7:0", + "nodeType": "VariableDeclaration", + "scope": 166, + "src": "4676:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4676:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4661:31:0" + }, + "returnParameters": { + "id": 159, + "nodeType": "ParameterList", + "parameters": [], + "src": "4737:0:0" + }, + "scope": 295, + "src": "4642:138:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 377 + ], + "body": { + "id": 188, + "nodeType": "Block", + "src": "5407:166:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 174, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5421:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 175, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "5443:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5443:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5421:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 182, + "nodeType": "IfStatement", + "src": "5417:102:0", + "trueBody": { + "id": 181, + "nodeType": "Block", + "src": "5457:62:0", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 178, + "name": "AccessControlBadConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "5478:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5478:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 180, + "nodeType": "RevertStatement", + "src": "5471:37:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 184, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5541:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 185, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5547:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 183, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "5529:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5529:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 187, + "nodeType": "ExpressionStatement", + "src": "5529:37:0" + } + ] + }, + "documentation": { + "id": 167, + "nodeType": "StructuredDocumentation", + "src": "4786:537:0", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "36568abe", + "id": 189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "5337:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "role", + "nameLocation": "5358:4:0", + "nodeType": "VariableDeclaration", + "scope": 189, + "src": "5350:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 168, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5350:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "5372:18:0", + "nodeType": "VariableDeclaration", + "scope": 189, + "src": "5364:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5349:42:0" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [], + "src": "5407:0:0" + }, + "scope": 295, + "src": "5328:245:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 216, + "nodeType": "Block", + "src": "5771:174:0", + "statements": [ + { + "assignments": [ + 198 + ], + "declarations": [ + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "5789:17:0", + "nodeType": "VariableDeclaration", + "scope": 216, + "src": "5781:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 197, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5781:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 202, + "initialValue": { + "arguments": [ + { + "id": 200, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5822:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 199, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "5809:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5809:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5781:46:0" + }, + { + "expression": { + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 203, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "5837:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 205, + "indexExpression": { + "id": 204, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5844:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5837:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5850:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "5837:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 207, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "5862:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5837:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 209, + "nodeType": "ExpressionStatement", + "src": "5837:34:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 211, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5903:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 212, + "name": "previousAdminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 198, + "src": "5909:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 213, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "5928:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 210, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "5886:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5886:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 215, + "nodeType": "EmitStatement", + "src": "5881:57:0" + } + ] + }, + "documentation": { + "id": 190, + "nodeType": "StructuredDocumentation", + "src": "5579:114:0", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "5707:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "role", + "nameLocation": "5729:4:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "5721:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 191, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "5743:9:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "5735:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 193, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5720:33:0" + }, + "returnParameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [], + "src": "5771:0:0" + }, + "scope": 295, + "src": "5698:247:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 255, + "nodeType": "Block", + "src": "6262:233:0", + "statements": [ + { + "condition": { + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6276:23:0", + "subExpression": { + "arguments": [ + { + "id": 228, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6285:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 229, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 227, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "6277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6277:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 253, + "nodeType": "Block", + "src": "6452:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6473:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 226, + "id": 252, + "nodeType": "Return", + "src": "6466:12:0" + } + ] + }, + "id": 254, + "nodeType": "IfStatement", + "src": "6272:217:0", + "trueBody": { + "id": 250, + "nodeType": "Block", + "src": "6301:145:0", + "statements": [ + { + "expression": { + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 232, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "6315:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6322:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6315:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6328:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6315:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 237, + "indexExpression": { + "id": 236, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6336:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6315:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6315:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "6315:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 242, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 243, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6388:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 244, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "6397:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6397:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 241, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "6370:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6370:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 247, + "nodeType": "EmitStatement", + "src": "6365:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6431:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 226, + "id": 249, + "nodeType": "Return", + "src": "6424:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 218, + "nodeType": "StructuredDocumentation", + "src": "5951:223:0", + "text": " @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event." + }, + "id": 256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "6188:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "role", + "nameLocation": "6207:4:0", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6199:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6199:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "account", + "nameLocation": "6221:7:0", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6213:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6213:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6198:31:0" + }, + "returnParameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6256:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 224, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6256:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6255:6:0" + }, + "scope": 295, + "src": "6179:316:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 293, + "nodeType": "Block", + "src": "6814:233:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 267, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6836:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6842:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 266, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "6828:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6828:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 291, + "nodeType": "Block", + "src": "7004:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7025:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 265, + "id": 290, + "nodeType": "Return", + "src": "7018:12:0" + } + ] + }, + "id": 292, + "nodeType": "IfStatement", + "src": "6824:217:0", + "trueBody": { + "id": 288, + "nodeType": "Block", + "src": "6852:146:0", + "statements": [ + { + "expression": { + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 270, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "6866:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 272, + "indexExpression": { + "id": 271, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6873:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6866:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 273, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6879:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6866:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6887:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6866:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6898:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6866:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6866:37:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 280, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6934:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6940:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 282, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "6949:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6949:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 279, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 335, + "src": "6922:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6922:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 285, + "nodeType": "EmitStatement", + "src": "6917:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 265, + "id": 287, + "nodeType": "Return", + "src": "6976:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 257, + "nodeType": "StructuredDocumentation", + "src": "6501:224:0", + "text": " @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event." + }, + "id": 294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "6739:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 259, + "mutability": "mutable", + "name": "role", + "nameLocation": "6759:4:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6751:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 258, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6751:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 261, + "mutability": "mutable", + "name": "account", + "nameLocation": "6773:7:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6765:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6765:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6750:31:0" + }, + "returnParameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6808:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6808:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6807:6:0" + }, + "scope": 295, + "src": "6730:317:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 296, + "src": "1953:5096:0", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335 + ] + } + ], + "src": "108:6942:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "exportedSymbols": { + "IAccessControl": [ + 378 + ] + }, + "id": 379, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAccessControl", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 298, + "nodeType": "StructuredDocumentation", + "src": "135:89:1", + "text": " @dev External interface of AccessControl declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 378, + "linearizedBaseContracts": [ + 378 + ], + "name": "IAccessControl", + "nameLocation": "235:14:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "256:56:1", + "text": " @dev The `account` is missing a role." + }, + "errorSelector": "e2517d3f", + "id": 305, + "name": "AccessControlUnauthorizedAccount", + "nameLocation": "323:32:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "account", + "nameLocation": "364:7:1", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "356:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "356:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "neededRole", + "nameLocation": "381:10:1", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "373:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 302, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "355:37:1" + }, + "src": "317:76:1" + }, + { + "documentation": { + "id": 306, + "nodeType": "StructuredDocumentation", + "src": "399:148:1", + "text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}." + }, + "errorSelector": "6697b232", + "id": 308, + "name": "AccessControlBadConfirmation", + "nameLocation": "558:28:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [], + "src": "586:2:1" + }, + "src": "552:37:1" + }, + { + "anonymous": false, + "documentation": { + "id": 309, + "nodeType": "StructuredDocumentation", + "src": "595:254:1", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this." + }, + "eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", + "id": 317, + "name": "RoleAdminChanged", + "nameLocation": "860:16:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "893:4:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "877:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 310, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "877:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "915:17:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "899:33:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 312, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 315, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nameLocation": "950:12:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "934:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 314, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "934:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "876:87:1" + }, + "src": "854:110:1" + }, + { + "anonymous": false, + "documentation": { + "id": 318, + "nodeType": "StructuredDocumentation", + "src": "970:212:1", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}." + }, + "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "id": 326, + "name": "RoleGranted", + "nameLocation": "1193:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 320, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1221:4:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1205:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1205:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1243:7:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1227:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1227:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 324, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1268:6:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1252:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1252:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1204:71:1" + }, + "src": "1187:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 327, + "nodeType": "StructuredDocumentation", + "src": "1282:275:1", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b", + "id": 335, + "name": "RoleRevoked", + "nameLocation": "1568:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1596:4:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1580:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 328, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1618:7:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1602:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1602:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1643:6:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1627:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1627:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1579:71:1" + }, + "src": "1562:89:1" + }, + { + "documentation": { + "id": 336, + "nodeType": "StructuredDocumentation", + "src": "1657:76:1", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 345, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "1747:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "role", + "nameLocation": "1763:4:1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1755:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 337, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1755:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "account", + "nameLocation": "1777:7:1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1769:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1754:31:1" + }, + "returnParameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1809:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 342, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1809:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1808:6:1" + }, + "scope": 378, + "src": "1738:77:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 346, + "nodeType": "StructuredDocumentation", + "src": "1821:184:1", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 353, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "2019:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "mutability": "mutable", + "name": "role", + "nameLocation": "2040:4:1", + "nodeType": "VariableDeclaration", + "scope": 353, + "src": "2032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 347, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2031:14:1" + }, + "returnParameters": { + "id": 352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 353, + "src": "2069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 350, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2068:9:1" + }, + "scope": 378, + "src": "2010:68:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 354, + "nodeType": "StructuredDocumentation", + "src": "2084:239:1", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 361, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "2337:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 356, + "mutability": "mutable", + "name": "role", + "nameLocation": "2355:4:1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "2347:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 355, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2347:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "account", + "nameLocation": "2369:7:1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "2361:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2361:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2346:31:1" + }, + "returnParameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [], + "src": "2386:0:1" + }, + "scope": 378, + "src": "2328:59:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 362, + "nodeType": "StructuredDocumentation", + "src": "2393:223:1", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 369, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "2630:10:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 364, + "mutability": "mutable", + "name": "role", + "nameLocation": "2649:4:1", + "nodeType": "VariableDeclaration", + "scope": 369, + "src": "2641:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 363, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 366, + "mutability": "mutable", + "name": "account", + "nameLocation": "2663:7:1", + "nodeType": "VariableDeclaration", + "scope": 369, + "src": "2655:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2640:31:1" + }, + "returnParameters": { + "id": 368, + "nodeType": "ParameterList", + "parameters": [], + "src": "2680:0:1" + }, + "scope": 378, + "src": "2621:60:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 370, + "nodeType": "StructuredDocumentation", + "src": "2687:491:1", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`." + }, + "functionSelector": "36568abe", + "id": 377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "3192:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "role", + "nameLocation": "3213:4:1", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "3205:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 371, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3205:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "3227:18:1", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "3219:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3219:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3204:42:1" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:1" + }, + "scope": 378, + "src": "3183:73:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 379, + "src": "225:3033:1", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335 + ] + } + ], + "src": "109:3150:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 515 + ], + "IERC20Errors": [ + 420 + ], + "IERC721Errors": [ + 468 + ] + }, + "id": 516, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 380, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 381, + "nodeType": "StructuredDocumentation", + "src": "138:139:2", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 420, + "linearizedBaseContracts": [ + 420 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "307:309:2", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 390, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:2", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "652:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:2", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "668:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:2", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "685:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:2" + }, + "src": "621:80:2" + }, + { + "documentation": { + "id": 391, + "nodeType": "StructuredDocumentation", + "src": "707:152:2", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 395, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:2", + "nodeType": "VariableDeclaration", + "scope": 395, + "src": "889:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:2" + }, + "src": "864:41:2" + }, + { + "documentation": { + "id": 396, + "nodeType": "StructuredDocumentation", + "src": "911:159:2", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 400, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 398, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:2", + "nodeType": "VariableDeclaration", + "scope": 400, + "src": "1102:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:2" + }, + "src": "1075:45:2" + }, + { + "documentation": { + "id": 401, + "nodeType": "StructuredDocumentation", + "src": "1126:345:2", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 409, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "1509:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 405, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "1526:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "1545:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:2" + }, + "src": "1476:85:2" + }, + { + "documentation": { + "id": 410, + "nodeType": "StructuredDocumentation", + "src": "1567:174:2", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 414, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 412, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:2", + "nodeType": "VariableDeclaration", + "scope": 414, + "src": "1773:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:2" + }, + "src": "1746:45:2" + }, + { + "documentation": { + "id": 415, + "nodeType": "StructuredDocumentation", + "src": "1797:195:2", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 419, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:2", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "2023:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:2" + }, + "src": "1997:43:2" + } + ], + "scope": 516, + "src": "278:1764:2", + "usedErrors": [ + 390, + 395, + 400, + 409, + 414, + 419 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 421, + "nodeType": "StructuredDocumentation", + "src": "2044:141:2", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 468, + "linearizedBaseContracts": [ + 468 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 422, + "nodeType": "StructuredDocumentation", + "src": "2216:219:2", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 426, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 424, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:2", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "2465:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 423, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:2" + }, + "src": "2440:40:2" + }, + { + "documentation": { + "id": 427, + "nodeType": "StructuredDocumentation", + "src": "2486:132:2", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 431, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 429, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:2", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "2652:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:2" + }, + "src": "2623:46:2" + }, + { + "documentation": { + "id": 432, + "nodeType": "StructuredDocumentation", + "src": "2675:289:2", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 440, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:2", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "2996:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 436, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:2", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "3012:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:2", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "3029:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:2" + }, + "src": "2969:75:2" + }, + { + "documentation": { + "id": 441, + "nodeType": "StructuredDocumentation", + "src": "3050:152:2", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 445, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 443, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:2", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "3233:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:2" + }, + "src": "3207:42:2" + }, + { + "documentation": { + "id": 446, + "nodeType": "StructuredDocumentation", + "src": "3255:159:2", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 450, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:2", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "3447:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:2" + }, + "src": "3419:46:2" + }, + { + "documentation": { + "id": 451, + "nodeType": "StructuredDocumentation", + "src": "3471:247:2", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 457, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:2", + "nodeType": "VariableDeclaration", + "scope": 457, + "src": "3756:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 455, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:2", + "nodeType": "VariableDeclaration", + "scope": 457, + "src": "3774:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:2" + }, + "src": "3723:68:2" + }, + { + "documentation": { + "id": 458, + "nodeType": "StructuredDocumentation", + "src": "3797:174:2", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 462, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 460, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:2", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "4004:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:2" + }, + "src": "3976:46:2" + }, + { + "documentation": { + "id": 463, + "nodeType": "StructuredDocumentation", + "src": "4028:197:2", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 467, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 465, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:2", + "nodeType": "VariableDeclaration", + "scope": 467, + "src": "4258:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:2" + }, + "src": "4230:46:2" + } + ], + "scope": 516, + "src": "2186:2092:2", + "usedErrors": [ + 426, + 431, + 440, + 445, + 450, + 457, + 462, + 467 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 469, + "nodeType": "StructuredDocumentation", + "src": "4280:143:2", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 515, + "linearizedBaseContracts": [ + 515 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 470, + "nodeType": "StructuredDocumentation", + "src": "4455:361:2", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 480, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 472, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4854:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 474, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4870:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 476, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4887:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4903:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:2" + }, + "src": "4821:99:2" + }, + { + "documentation": { + "id": 481, + "nodeType": "StructuredDocumentation", + "src": "4926:152:2", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 485, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:2", + "nodeType": "VariableDeclaration", + "scope": 485, + "src": "5110:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:2" + }, + "src": "5083:43:2" + }, + { + "documentation": { + "id": 486, + "nodeType": "StructuredDocumentation", + "src": "5132:159:2", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 490, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 488, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:2", + "nodeType": "VariableDeclaration", + "scope": 490, + "src": "5325:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:2" + }, + "src": "5296:47:2" + }, + { + "documentation": { + "id": 491, + "nodeType": "StructuredDocumentation", + "src": "5349:256:2", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 497, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 493, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:2", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "5645:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:2", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "5663:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:2" + }, + "src": "5610:68:2" + }, + { + "documentation": { + "id": 498, + "nodeType": "StructuredDocumentation", + "src": "5684:174:2", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 502, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 500, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:2", + "nodeType": "VariableDeclaration", + "scope": 502, + "src": "5892:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:2" + }, + "src": "5863:47:2" + }, + { + "documentation": { + "id": 503, + "nodeType": "StructuredDocumentation", + "src": "5916:197:2", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 507, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 505, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:2", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "6147:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:2" + }, + "src": "6118:47:2" + }, + { + "documentation": { + "id": 508, + "nodeType": "StructuredDocumentation", + "src": "6171:280:2", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 514, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:2", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "6488:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:2", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "6507:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:2" + }, + "src": "6456:73:2" + } + ], + "scope": 516, + "src": "4424:2107:2", + "usedErrors": [ + 480, + 485, + 490, + 497, + 502, + 507, + 514 + ], + "usedEvents": [] + } + ], + "src": "112:6420:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", + "exportedSymbols": { + "Arrays": [ + 1930 + ], + "Context": [ + 1960 + ], + "ERC1155": [ + 1566 + ], + "ERC165": [ + 2349 + ], + "IERC1155": [ + 1689 + ], + "IERC1155Errors": [ + 515 + ], + "IERC1155MetadataURI": [ + 1747 + ], + "IERC1155Receiver": [ + 1731 + ], + "IERC165": [ + 2556 + ] + }, + "id": 1567, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 517, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", + "file": "./IERC1155.sol", + "id": 519, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1690, + "src": "135:40:3", + "symbolAliases": [ + { + "foreign": { + "id": 518, + "name": "IERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "143:8:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", + "file": "./IERC1155Receiver.sol", + "id": 521, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1732, + "src": "176:56:3", + "symbolAliases": [ + { + "foreign": { + "id": 520, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "184:16:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "file": "./extensions/IERC1155MetadataURI.sol", + "id": 523, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1748, + "src": "233:73:3", + "symbolAliases": [ + { + "foreign": { + "id": 522, + "name": "IERC1155MetadataURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "241:19:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 525, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1961, + "src": "307:48:3", + "symbolAliases": [ + { + "foreign": { + "id": 524, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "315:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 528, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 2350, + "src": "356:69:3", + "symbolAliases": [ + { + "foreign": { + "id": 526, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "364:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 527, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "373:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol", + "file": "../../utils/Arrays.sol", + "id": 530, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1931, + "src": "426:46:3", + "symbolAliases": [ + { + "foreign": { + "id": 529, + "name": "Arrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1930, + "src": "434:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 532, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 516, + "src": "473:67:3", + "symbolAliases": [ + { + "foreign": { + "id": 531, + "name": "IERC1155Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "481:14:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 534, + "name": "Context", + "nameLocations": [ + "756:7:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1960, + "src": "756:7:3" + }, + "id": 535, + "nodeType": "InheritanceSpecifier", + "src": "756:7:3" + }, + { + "baseName": { + "id": 536, + "name": "ERC165", + "nameLocations": [ + "765:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2349, + "src": "765:6:3" + }, + "id": 537, + "nodeType": "InheritanceSpecifier", + "src": "765:6:3" + }, + { + "baseName": { + "id": 538, + "name": "IERC1155", + "nameLocations": [ + "773:8:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1689, + "src": "773:8:3" + }, + "id": 539, + "nodeType": "InheritanceSpecifier", + "src": "773:8:3" + }, + { + "baseName": { + "id": 540, + "name": "IERC1155MetadataURI", + "nameLocations": [ + "783:19:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1747, + "src": "783:19:3" + }, + "id": 541, + "nodeType": "InheritanceSpecifier", + "src": "783:19:3" + }, + { + "baseName": { + "id": 542, + "name": "IERC1155Errors", + "nameLocations": [ + "804:14:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 515, + "src": "804:14:3" + }, + "id": 543, + "nodeType": "InheritanceSpecifier", + "src": "804:14:3" + } + ], + "canonicalName": "ERC1155", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "542:184:3", + "text": " @dev Implementation of the basic standard multi-token.\n See https://eips.ethereum.org/EIPS/eip-1155\n Originally based on code by Enjin: https://github.com/enjin/erc-1155" + }, + "fullyImplemented": true, + "id": 1566, + "linearizedBaseContracts": [ + 1566, + 515, + 1747, + 1689, + 2349, + 2556, + 1960 + ], + "name": "ERC1155", + "nameLocation": "745:7:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 547, + "libraryName": { + "id": 544, + "name": "Arrays", + "nameLocations": [ + "831:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1930, + "src": "831:6:3" + }, + "nodeType": "UsingForDirective", + "src": "825:27:3", + "typeName": { + "baseType": { + "id": 545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "842:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 546, + "nodeType": "ArrayTypeName", + "src": "842:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + { + "global": false, + "id": 551, + "libraryName": { + "id": 548, + "name": "Arrays", + "nameLocations": [ + "863:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1930, + "src": "863:6:3" + }, + "nodeType": "UsingForDirective", + "src": "857:27:3", + "typeName": { + "baseType": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "874:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 550, + "nodeType": "ArrayTypeName", + "src": "874:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "957:9:3", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "890:76:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "typeName": { + "id": 556, + "keyName": "id", + "keyNameLocation": "906:2:3", + "keyType": { + "id": 552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "898:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "890:58:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 555, + "keyName": "account", + "keyNameLocation": "928:7:3", + "keyType": { + "id": 553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "920:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "912:35:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "939:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1043:18:3", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "973:88:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 562, + "keyName": "account", + "keyNameLocation": "989:7:3", + "keyType": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "981:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "973:61:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 561, + "keyName": "operator", + "keyNameLocation": "1016:8:3", + "keyType": { + "id": 559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1000:33:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 560, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1028:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 565, + "mutability": "mutable", + "name": "_uri", + "nameLocation": "1197:4:3", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "1182:19:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1182:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 575, + "nodeType": "Block", + "src": "1283:30:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 572, + "name": "uri_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "1301:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 571, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "1293:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1293:13:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 574, + "nodeType": "ExpressionStatement", + "src": "1293:13:3" + } + ] + }, + "documentation": { + "id": 566, + "nodeType": "StructuredDocumentation", + "src": "1208:38:3", + "text": " @dev See {_setURI}." + }, + "id": 576, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 568, + "mutability": "mutable", + "name": "uri_", + "nameLocation": "1277:4:3", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "1263:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1263:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1262:20:3" + }, + "returnParameters": { + "id": 570, + "nodeType": "ParameterList", + "parameters": [], + "src": "1283:0:3" + }, + "scope": 1566, + "src": "1251:62:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2348, + 2555 + ], + "body": { + "id": 606, + "nodeType": "Block", + "src": "1488:197:3", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 587, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "1517:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 589, + "name": "IERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "1537:8:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155_$1689_$", + "typeString": "type(contract IERC1155)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC1155_$1689_$", + "typeString": "type(contract IERC1155)" + } + ], + "id": 588, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1532:4:3", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:14:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC1155_$1689", + "typeString": "type(contract IERC1155)" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1547:11:3", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1532:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1517:41:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 593, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "1574:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 595, + "name": "IERC1155MetadataURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "1594:19:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155MetadataURI_$1747_$", + "typeString": "type(contract IERC1155MetadataURI)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC1155MetadataURI_$1747_$", + "typeString": "type(contract IERC1155MetadataURI)" + } + ], + "id": 594, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1589:4:3", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC1155MetadataURI_$1747", + "typeString": "type(contract IERC1155MetadataURI)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1615:11:3", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1589:37:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1574:52:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1517:109:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 602, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "1666:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 600, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1642:5:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC1155_$1566_$", + "typeString": "type(contract super ERC1155)" + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1648:17:3", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2348, + "src": "1642:23:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1642:36:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1517:161:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 586, + "id": 605, + "nodeType": "Return", + "src": "1498:180:3" + } + ] + }, + "documentation": { + "id": 577, + "nodeType": "StructuredDocumentation", + "src": "1319:56:3", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 607, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1389:17:3", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 583, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 581, + "name": "ERC165", + "nameLocations": [ + "1456:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2349, + "src": "1456:6:3" + }, + { + "id": 582, + "name": "IERC165", + "nameLocations": [ + "1464:7:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "1464:7:3" + } + ], + "src": "1447:25:3" + }, + "parameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 579, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1414:11:3", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "1407:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 578, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1407:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1406:20:3" + }, + "returnParameters": { + "id": 586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 585, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "1482:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 584, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1482:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1481:6:3" + }, + "scope": 1566, + "src": "1380:305:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1746 + ], + "body": { + "id": 617, + "nodeType": "Block", + "src": "2159:28:3", + "statements": [ + { + "expression": { + "id": 615, + "name": "_uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "2176:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 614, + "id": 616, + "nodeType": "Return", + "src": "2169:11:3" + } + ] + }, + "documentation": { + "id": 608, + "nodeType": "StructuredDocumentation", + "src": "1691:388:3", + "text": " @dev See {IERC1155MetadataURI-uri}.\n This implementation returns the same URI for *all* token types. It relies\n on the token type ID substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n Clients calling this function must replace the `\\{id\\}` substring with the\n actual token type ID." + }, + "functionSelector": "0e89341c", + "id": 618, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uri", + "nameLocation": "2093:3:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 610, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 618, + "src": "2097:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2097:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2096:18:3" + }, + "returnParameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 618, + "src": "2144:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 612, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2144:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2143:15:3" + }, + "scope": 1566, + "src": "2084:103:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1627 + ], + "body": { + "id": 634, + "nodeType": "Block", + "src": "2333:46:3", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 628, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "2350:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 630, + "indexExpression": { + "id": 629, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 623, + "src": "2360:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2350:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 632, + "indexExpression": { + "id": 631, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 621, + "src": "2364:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2350:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 627, + "id": 633, + "nodeType": "Return", + "src": "2343:29:3" + } + ] + }, + "documentation": { + "id": 619, + "nodeType": "StructuredDocumentation", + "src": "2193:49:3", + "text": " @dev See {IERC1155-balanceOf}." + }, + "functionSelector": "00fdd58e", + "id": 635, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "2256:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 621, + "mutability": "mutable", + "name": "account", + "nameLocation": "2274:7:3", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "2266:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2266:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 623, + "mutability": "mutable", + "name": "id", + "nameLocation": "2291:2:3", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "2283:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2283:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2265:29:3" + }, + "returnParameters": { + "id": 627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 626, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "2324:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2324:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2323:9:3" + }, + "scope": 1566, + "src": "2247:132:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1640 + ], + "body": { + "id": 704, + "nodeType": "Block", + "src": "2678:410:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 648, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2692:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2701:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2692:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 650, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "2711:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2715:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2711:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2692:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 661, + "nodeType": "IfStatement", + "src": "2688:121:3", + "trueBody": { + "id": 660, + "nodeType": "Block", + "src": "2723:86:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 654, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "2770:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2774:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2770:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 656, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2782:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2791:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2782:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 653, + "name": "ERC1155InvalidArrayLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "2744:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2744:54:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 659, + "nodeType": "RevertStatement", + "src": "2737:61:3" + } + ] + } + }, + { + "assignments": [ + 666 + ], + "declarations": [ + { + "constant": false, + "id": 666, + "mutability": "mutable", + "name": "batchBalances", + "nameLocation": "2836:13:3", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "2819:30:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2819:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 665, + "nodeType": "ArrayTypeName", + "src": "2819:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 673, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 670, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2866:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2875:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2866:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2852:13:3", + "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": 667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2856:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 668, + "nodeType": "ArrayTypeName", + "src": "2856:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2852:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2819:63:3" + }, + { + "body": { + "id": 700, + "nodeType": "Block", + "src": "2939:112:3", + "statements": [ + { + "expression": { + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 685, + "name": "batchBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 666, + "src": "2953:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 687, + "indexExpression": { + "id": 686, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2967:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2953:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 691, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "3010:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 689, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2982:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2991:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1929, + "src": "2982:27:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address[] memory,uint256) pure returns (address)" + } + }, + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2982:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 695, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "3037:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 693, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "3014:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "3014:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3014:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 688, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2972:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2972:68:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2953:87:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 699, + "nodeType": "ExpressionStatement", + "src": "2953:87:3" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 678, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2913:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 679, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2917:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2926:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2917:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2913:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 701, + "initializationExpression": { + "assignments": [ + 675 + ], + "declarations": [ + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "i", + "nameLocation": "2906:1:3", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "2898:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2898:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 677, + "initialValue": { + "hexValue": "30", + "id": 676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2910:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2898:13:3" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2934:3:3", + "subExpression": { + "id": 682, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2936:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 684, + "nodeType": "ExpressionStatement", + "src": "2934:3:3" + }, + "nodeType": "ForStatement", + "src": "2893:158:3" + }, + { + "expression": { + "id": 702, + "name": "batchBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 666, + "src": "3068:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 647, + "id": 703, + "nodeType": "Return", + "src": "3061:20:3" + } + ] + }, + "documentation": { + "id": 636, + "nodeType": "StructuredDocumentation", + "src": "2385:146:3", + "text": " @dev See {IERC1155-balanceOfBatch}.\n Requirements:\n - `accounts` and `ids` must have the same length." + }, + "functionSelector": "4e1273f4", + "id": 705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOfBatch", + "nameLocation": "2545:14:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "accounts", + "nameLocation": "2586:8:3", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "2569:25:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2569:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 638, + "nodeType": "ArrayTypeName", + "src": "2569:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2621:3:3", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "2604:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 640, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2604:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 641, + "nodeType": "ArrayTypeName", + "src": "2604:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2559:71:3" + }, + "returnParameters": { + "id": 647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 646, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "2660:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 644, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2660:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 645, + "nodeType": "ArrayTypeName", + "src": "2660:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2659:18:3" + }, + "scope": 1566, + "src": "2536:552:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1648 + ], + "body": { + "id": 720, + "nodeType": "Block", + "src": "3231:69:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 714, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "3260:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3260:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 716, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "3274:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 717, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "3284:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 713, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "3241:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3241:52:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 719, + "nodeType": "ExpressionStatement", + "src": "3241:52:3" + } + ] + }, + "documentation": { + "id": 706, + "nodeType": "StructuredDocumentation", + "src": "3094:57:3", + "text": " @dev See {IERC1155-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "3165:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3191:8:3", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3183:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3183:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "approved", + "nameLocation": "3206:8:3", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3201:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 709, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3201:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3182:33:3" + }, + "returnParameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [], + "src": "3231:0:3" + }, + "scope": 1566, + "src": "3156:144:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1658 + ], + "body": { + "id": 737, + "nodeType": "Block", + "src": "3463:61:3", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 731, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "3480:18:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 733, + "indexExpression": { + "id": 732, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "3499:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3480:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 735, + "indexExpression": { + "id": 734, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "3508:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3480:37:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 730, + "id": 736, + "nodeType": "Return", + "src": "3473:44:3" + } + ] + }, + "documentation": { + "id": 722, + "nodeType": "StructuredDocumentation", + "src": "3306:56:3", + "text": " @dev See {IERC1155-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "3376:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "account", + "nameLocation": "3401:7:3", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "3393:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3393:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3418:8:3", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "3410:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3410:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3392:35:3" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "3457:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3457:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3456:6:3" + }, + "scope": 1566, + "src": "3367:157:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1672 + ], + "body": { + "id": 781, + "nodeType": "Block", + "src": "3704:238:3", + "statements": [ + { + "assignments": [ + 753 + ], + "declarations": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3722:6:3", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "3714:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 752, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3714:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 756, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 754, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "3731:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3731:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3714:29:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 757, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3757:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 758, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "3765:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3757:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3775:31:3", + "subExpression": { + "arguments": [ + { + "id": 761, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3793:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 762, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "3799:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 760, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "3776:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3776:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3757:49:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 772, + "nodeType": "IfStatement", + "src": "3753:129:3", + "trueBody": { + "id": 771, + "nodeType": "Block", + "src": "3808:74:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 767, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "3858:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 768, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3866:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 766, + "name": "ERC1155MissingApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "3829:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3829:42:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 770, + "nodeType": "RevertStatement", + "src": "3822:49:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 774, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3909:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 775, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 743, + "src": "3915:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 776, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "3919:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 777, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "3923:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 778, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "3930:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 773, + "name": "_safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "3891:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,uint256,bytes memory)" + } + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3891:44:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 780, + "nodeType": "ExpressionStatement", + "src": "3891:44:3" + } + ] + }, + "documentation": { + "id": 739, + "nodeType": "StructuredDocumentation", + "src": "3530:56:3", + "text": " @dev See {IERC1155-safeTransferFrom}." + }, + "functionSelector": "f242432a", + "id": 782, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "3600:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 741, + "mutability": "mutable", + "name": "from", + "nameLocation": "3625:4:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3617:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3617:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 743, + "mutability": "mutable", + "name": "to", + "nameLocation": "3639:2:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3631:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3631:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 745, + "mutability": "mutable", + "name": "id", + "nameLocation": "3651:2:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3643:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3643:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 747, + "mutability": "mutable", + "name": "value", + "nameLocation": "3663:5:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3655:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3655:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "data", + "nameLocation": "3683:4:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3670:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 748, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3670:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3616:72:3" + }, + "returnParameters": { + "id": 751, + "nodeType": "ParameterList", + "parameters": [], + "src": "3704:0:3" + }, + "scope": 1566, + "src": "3591:351:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1688 + ], + "body": { + "id": 827, + "nodeType": "Block", + "src": "4198:245:3", + "statements": [ + { + "assignments": [ + 799 + ], + "declarations": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4216:6:3", + "nodeType": "VariableDeclaration", + "scope": 827, + "src": "4208:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4208:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 802, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 800, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "4225:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4225:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4208:29:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 803, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4251:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 804, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "4259:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4251:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4269:31:3", + "subExpression": { + "arguments": [ + { + "id": 807, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4287:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 808, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "4293:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 806, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "4270:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4270:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4251:49:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 818, + "nodeType": "IfStatement", + "src": "4247:129:3", + "trueBody": { + "id": 817, + "nodeType": "Block", + "src": "4302:74:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 813, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "4352:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 814, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4360:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 812, + "name": "ERC1155MissingApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "4323:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4323:42:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 816, + "nodeType": "RevertStatement", + "src": "4316:49:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 820, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4408:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 821, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "4414:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 822, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "4418:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 823, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "4423:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 824, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "4431:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 819, + "name": "_safeBatchTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "4385:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:51:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 826, + "nodeType": "ExpressionStatement", + "src": "4385:51:3" + } + ] + }, + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "3948:61:3", + "text": " @dev See {IERC1155-safeBatchTransferFrom}." + }, + "functionSelector": "2eb2c2d6", + "id": 828, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeBatchTransferFrom", + "nameLocation": "4023:21:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 785, + "mutability": "mutable", + "name": "from", + "nameLocation": "4062:4:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4054:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 787, + "mutability": "mutable", + "name": "to", + "nameLocation": "4084:2:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4076:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4076:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "mutability": "mutable", + "name": "ids", + "nameLocation": "4113:3:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4096:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4096:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 789, + "nodeType": "ArrayTypeName", + "src": "4096:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "values", + "nameLocation": "4143:6:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4126:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4126:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 792, + "nodeType": "ArrayTypeName", + "src": "4126:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 795, + "mutability": "mutable", + "name": "data", + "nameLocation": "4172:4:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4159:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 794, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4159:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4044:138:3" + }, + "returnParameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [], + "src": "4198:0:3" + }, + "scope": 1566, + "src": "4014:429:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 980, + "nodeType": "Block", + "src": "5251:1174:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 842, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5265:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5269:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5265:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 844, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "5279:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5286:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5279:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5265:27:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 855, + "nodeType": "IfStatement", + "src": "5261:117:3", + "trueBody": { + "id": 854, + "nodeType": "Block", + "src": "5294:84:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 848, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5341:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5345:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5341:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 850, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "5353:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5360:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5353:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 847, + "name": "ERC1155InvalidArrayLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "5315:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5315:52:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 853, + "nodeType": "RevertStatement", + "src": "5308:59:3" + } + ] + } + }, + { + "assignments": [ + 857 + ], + "declarations": [ + { + "constant": false, + "id": 857, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5396:8:3", + "nodeType": "VariableDeclaration", + "scope": 980, + "src": "5388:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5388:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 860, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 858, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "5407:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5407:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5388:31:3" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "5471:650:3", + "statements": [ + { + "assignments": [ + 873 + ], + "declarations": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "id", + "nameLocation": "5493:2:3", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "5485:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5485:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 878, + "initialValue": { + "arguments": [ + { + "id": 876, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5521:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 874, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5498:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5502:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "5498:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5485:38:3" + }, + { + "assignments": [ + 880 + ], + "declarations": [ + { + "constant": false, + "id": 880, + "mutability": "mutable", + "name": "value", + "nameLocation": "5545:5:3", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "5537:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5537:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 885, + "initialValue": { + "arguments": [ + { + "id": 883, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5579:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 881, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "5553:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5560:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "5553:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5553:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5537:44:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 886, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5600:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5616:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5608:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 887, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5608:7:3", + "typeDescriptions": {} + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5608:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5600:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 924, + "nodeType": "IfStatement", + "src": "5596:420:3", + "trueBody": { + "id": 923, + "nodeType": "Block", + "src": "5620:396:3", + "statements": [ + { + "assignments": [ + 893 + ], + "declarations": [ + { + "constant": false, + "id": 893, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "5646:11:3", + "nodeType": "VariableDeclaration", + "scope": 923, + "src": "5638:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5638:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 899, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 894, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "5660:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 896, + "indexExpression": { + "id": 895, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "5670:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5660:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 898, + "indexExpression": { + "id": 897, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5674:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5660:19:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5638:41:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 900, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "5701:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 901, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "5715:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5701:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 911, + "nodeType": "IfStatement", + "src": "5697:129:3", + "trueBody": { + "id": 910, + "nodeType": "Block", + "src": "5722:104:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 904, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5778:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 905, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "5784:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 906, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "5797:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 907, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "5804:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 903, + "name": "ERC1155InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "5751:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256,uint256,uint256) pure returns (error)" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5751:56:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 909, + "nodeType": "RevertStatement", + "src": "5744:63:3" + } + ] + } + }, + { + "id": 922, + "nodeType": "UncheckedBlock", + "src": "5843:159:3", + "statements": [ + { + "expression": { + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 912, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "5942:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 915, + "indexExpression": { + "id": 913, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "5952:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5942:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5956:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5942:19:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 917, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "5964:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 918, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "5978:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5964:19:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5942:41:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 921, + "nodeType": "ExpressionStatement", + "src": "5942:41:3" + } + ] + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 925, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6034:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6048:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6040:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6040:7:3", + "typeDescriptions": {} + } + }, + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6040:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6034:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 940, + "nodeType": "IfStatement", + "src": "6030:81:3", + "trueBody": { + "id": 939, + "nodeType": "Block", + "src": "6052:59:3", + "statements": [ + { + "expression": { + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 931, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "6070:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 934, + "indexExpression": { + "id": 932, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "6080:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6070:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 935, + "indexExpression": { + "id": 933, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6084:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6070:17:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 936, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "6091:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6070:26:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "6070:26:3" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 865, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5450:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 866, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5454:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5458:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5454:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5450:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 942, + "initializationExpression": { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "i", + "nameLocation": "5443:1:3", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "5435:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5435:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 864, + "initialValue": { + "hexValue": "30", + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5447:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5435:13:3" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "5466:3:3", + "subExpression": { + "id": 869, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5468:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 871, + "nodeType": "ExpressionStatement", + "src": "5466:3:3" + }, + "nodeType": "ForStatement", + "src": "5430:691:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 943, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "6135:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6139:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6135:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6149:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6135:15:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 978, + "nodeType": "Block", + "src": "6343:76:3", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 971, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "6376:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 972, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "6386:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 973, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6392:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 974, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "6396:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 975, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "6401:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 970, + "name": "TransferBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "6362:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6362:46:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 977, + "nodeType": "EmitStatement", + "src": "6357:51:3" + } + ] + }, + "id": 979, + "nodeType": "IfStatement", + "src": "6131:288:3", + "trueBody": { + "id": 969, + "nodeType": "Block", + "src": "6152:185:3", + "statements": [ + { + "assignments": [ + 948 + ], + "declarations": [ + { + "constant": false, + "id": 948, + "mutability": "mutable", + "name": "id", + "nameLocation": "6174:2:3", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "6166:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6166:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 953, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6202:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 949, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "6179:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6183:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "6179:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6179:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6166:38:3" + }, + { + "assignments": [ + 955 + ], + "declarations": [ + { + "constant": false, + "id": 955, + "mutability": "mutable", + "name": "value", + "nameLocation": "6226:5:3", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "6218:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 954, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6218:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 960, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6260:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 956, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "6234:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6241:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "6234:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6234:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6218:44:3" + }, + { + "eventCall": { + "arguments": [ + { + "id": 962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "6296:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 963, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "6306:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 964, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6312:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 965, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "6316:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 966, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "6320:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 961, + "name": "TransferSingle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1586, + "src": "6281:14:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6281:45:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 968, + "nodeType": "EmitStatement", + "src": "6276:50:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 829, + "nodeType": "StructuredDocumentation", + "src": "4449:690:3", + "text": " @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n (or `to`) is the zero address.\n Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n Requirements:\n - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n - `ids` and `values` must have the same length.\n NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead." + }, + "id": 981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "5153:7:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 831, + "mutability": "mutable", + "name": "from", + "nameLocation": "5169:4:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5161:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 830, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5161:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 833, + "mutability": "mutable", + "name": "to", + "nameLocation": "5183:2:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5175:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5175:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "ids", + "nameLocation": "5204:3:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5187:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5187:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 835, + "nodeType": "ArrayTypeName", + "src": "5187:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "values", + "nameLocation": "5226:6:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5209:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5209:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 838, + "nodeType": "ArrayTypeName", + "src": "5209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5160:73:3" + }, + "returnParameters": { + "id": 841, + "nodeType": "ParameterList", + "parameters": [], + "src": "5251:0:3" + }, + "scope": 1566, + "src": "5144:1281:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1056, + "nodeType": "Block", + "src": "7195:499:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 998, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7213:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 999, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7219:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1000, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7223:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1001, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "7228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 997, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "7205:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_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": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7205:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "7205:30:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1004, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7249:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7263:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7255:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7255:7:3", + "typeDescriptions": {} + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7255:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7249:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1055, + "nodeType": "IfStatement", + "src": "7245:443:3", + "trueBody": { + "id": 1054, + "nodeType": "Block", + "src": "7267:421:3", + "statements": [ + { + "assignments": [ + 1011 + ], + "declarations": [ + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "operator", + "nameLocation": "7289:8:3", + "nodeType": "VariableDeclaration", + "scope": 1054, + "src": "7281:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7281:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1014, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1012, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "7300:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7300:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7281:31:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1015, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7330:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7334:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7330:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7344:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7330:15:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1052, + "nodeType": "Block", + "src": "7571:107:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1044, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "7625:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1045, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7635:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1046, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7641:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1047, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7645:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1048, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "7650:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1049, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "7658:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1043, + "name": "_doSafeBatchTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1549, + "src": "7589:35:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7589:74:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1051, + "nodeType": "ExpressionStatement", + "src": "7589:74:3" + } + ] + }, + "id": 1053, + "nodeType": "IfStatement", + "src": "7326:352:3", + "trueBody": { + "id": 1042, + "nodeType": "Block", + "src": "7347:218:3", + "statements": [ + { + "assignments": [ + 1020 + ], + "declarations": [ + { + "constant": false, + "id": 1020, + "mutability": "mutable", + "name": "id", + "nameLocation": "7373:2:3", + "nodeType": "VariableDeclaration", + "scope": 1042, + "src": "7365:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7365:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1025, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7401:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 1021, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7378:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7382:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "7378:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7378:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7365:38:3" + }, + { + "assignments": [ + 1027 + ], + "declarations": [ + { + "constant": false, + "id": 1027, + "mutability": "mutable", + "name": "value", + "nameLocation": "7429:5:3", + "nodeType": "VariableDeclaration", + "scope": 1042, + "src": "7421:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7421:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1032, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7463:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 1028, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "7437:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7444:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "7437:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7437:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7421:44:3" + }, + { + "expression": { + "arguments": [ + { + "id": 1034, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "7514:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7524:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7530:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1037, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "7534:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1038, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "7538:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1039, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "7545:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1033, + "name": "_doSafeTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "7483:30:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256,bytes memory)" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7483:67:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1041, + "nodeType": "ExpressionStatement", + "src": "7483:67:3" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 982, + "nodeType": "StructuredDocumentation", + "src": "6431:568:3", + "text": " @dev Version of {_update} that performs the token acceptance check by calling\n {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n contains code (eg. is a smart contract at the moment of execution).\n IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n update to the contract state after this function would break the check-effect-interaction pattern. Consider\n overriding {_update} instead." + }, + "id": 1057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_updateWithAcceptanceCheck", + "nameLocation": "7013:26:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 984, + "mutability": "mutable", + "name": "from", + "nameLocation": "7057:4:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7049:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7049:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "to", + "nameLocation": "7079:2:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7071:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7071:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "ids", + "nameLocation": "7108:3:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7091:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7091:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 988, + "nodeType": "ArrayTypeName", + "src": "7091:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "values", + "nameLocation": "7138:6:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7121:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7121:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 991, + "nodeType": "ArrayTypeName", + "src": "7121:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 994, + "mutability": "mutable", + "name": "data", + "nameLocation": "7167:4:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7154:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 993, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7154:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7039:138:3" + }, + "returnParameters": { + "id": 996, + "nodeType": "ParameterList", + "parameters": [], + "src": "7195:0:3" + }, + "scope": 1566, + "src": "7004:690:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1122, + "nodeType": "Block", + "src": "8259:355:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "8273:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8287:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8279:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8279:7:3", + "typeDescriptions": {} + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8279:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8273:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1085, + "nodeType": "IfStatement", + "src": "8269:88:3", + "trueBody": { + "id": 1084, + "nodeType": "Block", + "src": "8291:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8343:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8335:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1078, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8335:7:3", + "typeDescriptions": {} + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8335:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1077, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "8312:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8312:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1083, + "nodeType": "RevertStatement", + "src": "8305:41:3" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1086, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "8370:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8386:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8378:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8378:7:3", + "typeDescriptions": {} + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8378:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8370:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1100, + "nodeType": "IfStatement", + "src": "8366:88:3", + "trueBody": { + "id": 1099, + "nodeType": "Block", + "src": "8390:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8440:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8432:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8432:7:3", + "typeDescriptions": {} + } + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8432:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1092, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "8411:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8411:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1098, + "nodeType": "RevertStatement", + "src": "8404:39:3" + } + ] + } + }, + { + "assignments": [ + 1105, + 1108 + ], + "declarations": [ + { + "constant": false, + "id": 1105, + "mutability": "mutable", + "name": "ids", + "nameLocation": "8481:3:3", + "nodeType": "VariableDeclaration", + "scope": 1122, + "src": "8464:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8464:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1104, + "nodeType": "ArrayTypeName", + "src": "8464:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1108, + "mutability": "mutable", + "name": "values", + "nameLocation": "8503:6:3", + "nodeType": "VariableDeclaration", + "scope": 1122, + "src": "8486:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8486:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1107, + "nodeType": "ArrayTypeName", + "src": "8486:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1113, + "initialValue": { + "arguments": [ + { + "id": 1110, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "8532:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1111, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "8536:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1109, + "name": "_asSingletonArrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "8513:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8513:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8463:79:3" + }, + { + "expression": { + "arguments": [ + { + "id": 1115, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "8579:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1116, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "8585:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1117, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "8589:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1118, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "8594:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1119, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "8602:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1114, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "8552:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8552:55:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1121, + "nodeType": "ExpressionStatement", + "src": "8552:55:3" + } + ] + }, + "documentation": { + "id": 1058, + "nodeType": "StructuredDocumentation", + "src": "7700:446:3", + "text": " @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "id": 1123, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransferFrom", + "nameLocation": "8160:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "from", + "nameLocation": "8186:4:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8178:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1059, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8178:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "to", + "nameLocation": "8200:2:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8192:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8192:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "id", + "nameLocation": "8212:2:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8204:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8204:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1066, + "mutability": "mutable", + "name": "value", + "nameLocation": "8224:5:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8216:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8216:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1068, + "mutability": "mutable", + "name": "data", + "nameLocation": "8244:4:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8231:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1067, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8231:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8177:72:3" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [], + "src": "8259:0:3" + }, + "scope": 1566, + "src": "8151:463:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1177, + "nodeType": "Block", + "src": "9194:266:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1139, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "9208:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9222:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9214:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9214:7:3", + "typeDescriptions": {} + } + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9214:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9208:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1153, + "nodeType": "IfStatement", + "src": "9204:88:3", + "trueBody": { + "id": 1152, + "nodeType": "Block", + "src": "9226:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9278:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9270:7:3", + "typeDescriptions": {} + } + }, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1145, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "9247:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9247:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1151, + "nodeType": "RevertStatement", + "src": "9240:41:3" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1154, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "9305:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9321:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9313:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9313:7:3", + "typeDescriptions": {} + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9313:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9305:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1168, + "nodeType": "IfStatement", + "src": "9301:88:3", + "trueBody": { + "id": 1167, + "nodeType": "Block", + "src": "9325:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9375:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9367:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9367:7:3", + "typeDescriptions": {} + } + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9367:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1160, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "9346:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9346:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1166, + "nodeType": "RevertStatement", + "src": "9339:39:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1170, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "9425:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1171, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "9431:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1172, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "9435:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1173, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "9440:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1174, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "9448:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1169, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "9398:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9398:55:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1176, + "nodeType": "ExpressionStatement", + "src": "9398:55:3" + } + ] + }, + "documentation": { + "id": 1124, + "nodeType": "StructuredDocumentation", + "src": "8620:390:3", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value.\n - `ids` and `values` must have the same length." + }, + "id": 1178, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeBatchTransferFrom", + "nameLocation": "9024:22:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1126, + "mutability": "mutable", + "name": "from", + "nameLocation": "9064:4:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9056:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9056:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1128, + "mutability": "mutable", + "name": "to", + "nameLocation": "9086:2:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9078:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9078:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "ids", + "nameLocation": "9115:3:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9098:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9098:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1130, + "nodeType": "ArrayTypeName", + "src": "9098:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1134, + "mutability": "mutable", + "name": "values", + "nameLocation": "9145:6:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9128:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9128:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1133, + "nodeType": "ArrayTypeName", + "src": "9128:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1136, + "mutability": "mutable", + "name": "data", + "nameLocation": "9174:4:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9161:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1135, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9161:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9046:138:3" + }, + "returnParameters": { + "id": 1138, + "nodeType": "ParameterList", + "parameters": [], + "src": "9194:0:3" + }, + "scope": 1566, + "src": "9015:445:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1188, + "nodeType": "Block", + "src": "10338:30:3", + "statements": [ + { + "expression": { + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1184, + "name": "_uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "10348:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1185, + "name": "newuri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1181, + "src": "10355:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "10348:13:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1187, + "nodeType": "ExpressionStatement", + "src": "10348:13:3" + } + ] + }, + "documentation": { + "id": 1179, + "nodeType": "StructuredDocumentation", + "src": "9466:811:3", + "text": " @dev Sets a new URI for all token types, by relying on the token type ID\n substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n URI or any of the values in the JSON file at said URI will be replaced by\n clients with the token type ID.\n For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n interpreted by clients as\n `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n for token type ID 0x4cce0.\n See {uri}.\n Because these URIs cannot be meaningfully represented by the {URI} event,\n this function emits no events." + }, + "id": 1189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setURI", + "nameLocation": "10291:7:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "newuri", + "nameLocation": "10313:6:3", + "nodeType": "VariableDeclaration", + "scope": 1189, + "src": "10299:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1180, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10299:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "10298:22:3" + }, + "returnParameters": { + "id": 1183, + "nodeType": "ParameterList", + "parameters": [], + "src": "10338:0:3" + }, + "scope": 1566, + "src": "10282:86:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1240, + "nodeType": "Block", + "src": "10828:264:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1201, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "10842:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10856:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10848:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10848:7:3", + "typeDescriptions": {} + } + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10848:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10842:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1215, + "nodeType": "IfStatement", + "src": "10838:88:3", + "trueBody": { + "id": 1214, + "nodeType": "Block", + "src": "10860:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10912:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10904:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10904:7:3", + "typeDescriptions": {} + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10904:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1207, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "10881:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10881:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1213, + "nodeType": "RevertStatement", + "src": "10874:41:3" + } + ] + } + }, + { + "assignments": [ + 1220, + 1223 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "ids", + "nameLocation": "10953:3:3", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "10936:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10936:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1219, + "nodeType": "ArrayTypeName", + "src": "10936:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1223, + "mutability": "mutable", + "name": "values", + "nameLocation": "10975:6:3", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "10958:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10958:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1222, + "nodeType": "ArrayTypeName", + "src": "10958:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "11004:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1226, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1196, + "src": "11008:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1224, + "name": "_asSingletonArrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "10985:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10985:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10935:79:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11059:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11051:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11051:7:3", + "typeDescriptions": {} + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11051:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1234, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "11063:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "11067:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1236, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1223, + "src": "11072:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1237, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1198, + "src": "11080:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1229, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "11024:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11024:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1239, + "nodeType": "ExpressionStatement", + "src": "11024:61:3" + } + ] + }, + "documentation": { + "id": 1190, + "nodeType": "StructuredDocumentation", + "src": "10374:367:3", + "text": " @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "id": 1241, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "10755:5:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1192, + "mutability": "mutable", + "name": "to", + "nameLocation": "10769:2:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10761:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10761:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "mutability": "mutable", + "name": "id", + "nameLocation": "10781:2:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10773:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10773:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "value", + "nameLocation": "10793:5:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10785:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10785:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1198, + "mutability": "mutable", + "name": "data", + "nameLocation": "10813:4:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10800:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1197, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10800:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "10760:58:3" + }, + "returnParameters": { + "id": 1200, + "nodeType": "ParameterList", + "parameters": [], + "src": "10828:0:3" + }, + "scope": 1566, + "src": "10746:346:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1281, + "nodeType": "Block", + "src": "11630:175:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1244, + "src": "11644:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11658:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11650:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11650:7:3", + "typeDescriptions": {} + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11650:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11644:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1269, + "nodeType": "IfStatement", + "src": "11640:88:3", + "trueBody": { + "id": 1268, + "nodeType": "Block", + "src": "11662:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11714:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11706:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11706:7:3", + "typeDescriptions": {} + } + }, + "id": 1265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11706:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1261, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "11683:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11683:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1267, + "nodeType": "RevertStatement", + "src": "11676:41:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11772:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11764:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1271, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11764:7:3", + "typeDescriptions": {} + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11764:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1275, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1244, + "src": "11776:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1276, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "11780:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1277, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "11785:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1278, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "11793:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1270, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "11737:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11737:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1280, + "nodeType": "ExpressionStatement", + "src": "11737:61:3" + } + ] + }, + "documentation": { + "id": 1242, + "nodeType": "StructuredDocumentation", + "src": "11098:420:3", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `values` must have the same length.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value." + }, + "id": 1282, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintBatch", + "nameLocation": "11532:10:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1244, + "mutability": "mutable", + "name": "to", + "nameLocation": "11551:2:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11543:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11543:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1247, + "mutability": "mutable", + "name": "ids", + "nameLocation": "11572:3:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11555:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11555:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1246, + "nodeType": "ArrayTypeName", + "src": "11555:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "values", + "nameLocation": "11594:6:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11577:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11577:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1249, + "nodeType": "ArrayTypeName", + "src": "11577:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "data", + "nameLocation": "11615:4:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11602:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1251, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11602:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "11542:78:3" + }, + "returnParameters": { + "id": 1254, + "nodeType": "ParameterList", + "parameters": [], + "src": "11630:0:3" + }, + "scope": 1566, + "src": "11523:282:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1331, + "nodeType": "Block", + "src": "12164:264:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1292, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12178:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12194:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12186:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12186:7:3", + "typeDescriptions": {} + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12186:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12178:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1306, + "nodeType": "IfStatement", + "src": "12174:88:3", + "trueBody": { + "id": 1305, + "nodeType": "Block", + "src": "12198:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12248:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12240:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12240:7:3", + "typeDescriptions": {} + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12240:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1298, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "12219:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12219:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1304, + "nodeType": "RevertStatement", + "src": "12212:39:3" + } + ] + } + }, + { + "assignments": [ + 1311, + 1314 + ], + "declarations": [ + { + "constant": false, + "id": 1311, + "mutability": "mutable", + "name": "ids", + "nameLocation": "12289:3:3", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "12272:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12272:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1310, + "nodeType": "ArrayTypeName", + "src": "12272:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1314, + "mutability": "mutable", + "name": "values", + "nameLocation": "12311:6:3", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "12294:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12294:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1313, + "nodeType": "ArrayTypeName", + "src": "12294:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1319, + "initialValue": { + "arguments": [ + { + "id": 1316, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1287, + "src": "12340:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1317, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "12344:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1315, + "name": "_asSingletonArrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "12321:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)" + } + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12321:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12271:79:3" + }, + { + "expression": { + "arguments": [ + { + "id": 1321, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12387:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12401:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12393:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12393:7:3", + "typeDescriptions": {} + } + }, + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12393:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1326, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1311, + "src": "12405:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1327, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "12410:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "hexValue": "", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12418:2:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1320, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "12360:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12360:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "12360:61:3" + } + ] + }, + "documentation": { + "id": 1283, + "nodeType": "StructuredDocumentation", + "src": "11811:283:3", + "text": " @dev Destroys a `value` amount of tokens of type `id` from `from`\n Emits a {TransferSingle} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`." + }, + "id": 1332, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "12108:5:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1285, + "mutability": "mutable", + "name": "from", + "nameLocation": "12122:4:3", + "nodeType": "VariableDeclaration", + "scope": 1332, + "src": "12114:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12114:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1287, + "mutability": "mutable", + "name": "id", + "nameLocation": "12136:2:3", + "nodeType": "VariableDeclaration", + "scope": 1332, + "src": "12128:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12128:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1289, + "mutability": "mutable", + "name": "value", + "nameLocation": "12148:5:3", + "nodeType": "VariableDeclaration", + "scope": 1332, + "src": "12140:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12140:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12113:41:3" + }, + "returnParameters": { + "id": 1291, + "nodeType": "ParameterList", + "parameters": [], + "src": "12164:0:3" + }, + "scope": 1566, + "src": "12099:329:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1370, + "nodeType": "Block", + "src": "12874:175:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "12888:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12904:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12896:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12896:7:3", + "typeDescriptions": {} + } + }, + "id": 1348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12896:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12888:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1358, + "nodeType": "IfStatement", + "src": "12884:88:3", + "trueBody": { + "id": 1357, + "nodeType": "Block", + "src": "12908:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12958:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12950:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12950:7:3", + "typeDescriptions": {} + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12950:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1350, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "12929:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12929:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1356, + "nodeType": "RevertStatement", + "src": "12922:39:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1360, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "13008:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13022:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13014:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13014:7:3", + "typeDescriptions": {} + } + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13014:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1365, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "13026:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1366, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "13031:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "hexValue": "", + "id": 1367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13039:2:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1359, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "12981:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12981:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1369, + "nodeType": "ExpressionStatement", + "src": "12981:61:3" + } + ] + }, + "documentation": { + "id": 1333, + "nodeType": "StructuredDocumentation", + "src": "12434:345:3", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n Emits a {TransferBatch} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`.\n - `ids` and `values` must have the same length." + }, + "id": 1371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnBatch", + "nameLocation": "12793:10:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1335, + "mutability": "mutable", + "name": "from", + "nameLocation": "12812:4:3", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "12804:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12804:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1338, + "mutability": "mutable", + "name": "ids", + "nameLocation": "12835:3:3", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "12818:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12818:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1337, + "nodeType": "ArrayTypeName", + "src": "12818:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1341, + "mutability": "mutable", + "name": "values", + "nameLocation": "12857:6:3", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "12840:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12840:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1340, + "nodeType": "ArrayTypeName", + "src": "12840:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "12803:61:3" + }, + "returnParameters": { + "id": 1343, + "nodeType": "ParameterList", + "parameters": [], + "src": "12874:0:3" + }, + "scope": 1566, + "src": "12784:265:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1410, + "nodeType": "Block", + "src": "13361:222:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1381, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1376, + "src": "13375:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13395:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13387:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13387:7:3", + "typeDescriptions": {} + } + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13387:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13375:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1395, + "nodeType": "IfStatement", + "src": "13371:94:3", + "trueBody": { + "id": 1394, + "nodeType": "Block", + "src": "13399:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13451:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13443:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13443:7:3", + "typeDescriptions": {} + } + }, + "id": 1391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13443:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1387, + "name": "ERC1155InvalidOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "13420:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13420:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1393, + "nodeType": "RevertStatement", + "src": "13413:41:3" + } + ] + } + }, + { + "expression": { + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1396, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "13474:18:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1399, + "indexExpression": { + "id": 1397, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1374, + "src": "13493:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13474:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1400, + "indexExpression": { + "id": 1398, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1376, + "src": "13500:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13474:35:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1401, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1378, + "src": "13512:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13474:46:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1403, + "nodeType": "ExpressionStatement", + "src": "13474:46:3" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1405, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1374, + "src": "13550:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1376, + "src": "13557:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1407, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1378, + "src": "13567:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1404, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1610, + "src": "13535:14:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13535:41:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1409, + "nodeType": "EmitStatement", + "src": "13530:46:3" + } + ] + }, + "documentation": { + "id": 1372, + "nodeType": "StructuredDocumentation", + "src": "13055:208:3", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address." + }, + "id": 1411, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "13277:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "owner", + "nameLocation": "13304:5:3", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "13296:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13296:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1376, + "mutability": "mutable", + "name": "operator", + "nameLocation": "13319:8:3", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "13311:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13311:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "approved", + "nameLocation": "13334:8:3", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "13329:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1377, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13329:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13295:48:3" + }, + "returnParameters": { + "id": 1380, + "nodeType": "ParameterList", + "parameters": [], + "src": "13361:0:3" + }, + "scope": 1566, + "src": "13268:315:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1478, + "nodeType": "Block", + "src": "13953:782:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1427, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "13967:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13970:4:3", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "13967:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13975:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13967:14:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13984:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13967:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1477, + "nodeType": "IfStatement", + "src": "13963:766:3", + "trueBody": { + "id": 1476, + "nodeType": "Block", + "src": "13987:742:3", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1456, + "nodeType": "Block", + "src": "14103:206:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1445, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "14125:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1446, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "14137:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14154:17:3", + "memberName": "onERC1155Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1712, + "src": "14137:34:3", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14172:8:3", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "14137:43:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "14125:55:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1455, + "nodeType": "IfStatement", + "src": "14121:174:3", + "trueBody": { + "id": 1454, + "nodeType": "Block", + "src": "14182:113:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1451, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "14273:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1450, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "14250:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14250:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1453, + "nodeType": "RevertStatement", + "src": "14243:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1457, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "response", + "nameLocation": "14093:8:3", + "nodeType": "VariableDeclaration", + "scope": 1457, + "src": "14086:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1442, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "14086:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "14085:17:3" + }, + "src": "14077:232:3" + }, + { + "block": { + "id": 1473, + "nodeType": "Block", + "src": "14338:381:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1461, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "14360:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14367:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14360:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14377:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14360:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1471, + "nodeType": "Block", + "src": "14515:190:3", + "statements": [ + { + "AST": { + "nativeSrc": "14601:86:3", + "nodeType": "YulBlock", + "src": "14601:86:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14638:2:3", + "nodeType": "YulLiteral", + "src": "14638:2:3", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "14642:6:3", + "nodeType": "YulIdentifier", + "src": "14642:6:3" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14634:3:3", + "nodeType": "YulIdentifier", + "src": "14634:3:3" + }, + "nativeSrc": "14634:15:3", + "nodeType": "YulFunctionCall", + "src": "14634:15:3" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "14657:6:3", + "nodeType": "YulIdentifier", + "src": "14657:6:3" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14651:5:3", + "nodeType": "YulIdentifier", + "src": "14651:5:3" + }, + "nativeSrc": "14651:13:3", + "nodeType": "YulFunctionCall", + "src": "14651:13:3" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14627:6:3", + "nodeType": "YulIdentifier", + "src": "14627:6:3" + }, + "nativeSrc": "14627:38:3", + "nodeType": "YulFunctionCall", + "src": "14627:38:3" + }, + "nativeSrc": "14627:38:3", + "nodeType": "YulExpressionStatement", + "src": "14627:38:3" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1459, + "isOffset": false, + "isSlot": false, + "src": "14642:6:3", + "valueSize": 1 + }, + { + "declaration": 1459, + "isOffset": false, + "isSlot": false, + "src": "14657:6:3", + "valueSize": 1 + } + ], + "id": 1470, + "nodeType": "InlineAssembly", + "src": "14592:95:3" + } + ] + }, + "id": 1472, + "nodeType": "IfStatement", + "src": "14356:349:3", + "trueBody": { + "id": 1469, + "nodeType": "Block", + "src": "14380:129:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1466, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "14487:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1465, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "14464:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14464:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1468, + "nodeType": "RevertStatement", + "src": "14457:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1474, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "reason", + "nameLocation": "14330:6:3", + "nodeType": "VariableDeclaration", + "scope": 1474, + "src": "14317:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1458, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14317:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14316:21:3" + }, + "src": "14310:409:3" + } + ], + "externalCall": { + "arguments": [ + { + "id": 1436, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "14044:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1437, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1416, + "src": "14054:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1438, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1420, + "src": "14060:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1439, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1422, + "src": "14064:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1440, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1424, + "src": "14071:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "14022:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1432, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "14005:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14005:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155Receiver_$1731", + "typeString": "contract IERC1155Receiver" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14026:17:3", + "memberName": "onERC1155Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1712, + "src": "14005:38:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14005:71:3", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1475, + "nodeType": "TryStatement", + "src": "14001:718:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 1412, + "nodeType": "StructuredDocumentation", + "src": "13589:167:3", + "text": " @dev Performs an acceptance check by calling {IERC1155-onERC1155Received} on the `to` address\n if it contains code at the moment of execution." + }, + "id": 1479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_doSafeTransferAcceptanceCheck", + "nameLocation": "13770:30:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1414, + "mutability": "mutable", + "name": "operator", + "nameLocation": "13818:8:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13810:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13810:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1416, + "mutability": "mutable", + "name": "from", + "nameLocation": "13844:4:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13836:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13836:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "to", + "nameLocation": "13866:2:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13858:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "id", + "nameLocation": "13886:2:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13878:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1419, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13878:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1422, + "mutability": "mutable", + "name": "value", + "nameLocation": "13906:5:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13898:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13898:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1424, + "mutability": "mutable", + "name": "data", + "nameLocation": "13934:4:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13921:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1423, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13921:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13800:144:3" + }, + "returnParameters": { + "id": 1426, + "nodeType": "ParameterList", + "parameters": [], + "src": "13953:0:3" + }, + "scope": 1566, + "src": "13761:974:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1548, + "nodeType": "Block", + "src": "15140:824:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1497, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15154:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15157:4:3", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "15154:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15162:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15154:14:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15171:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15154:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1547, + "nodeType": "IfStatement", + "src": "15150:808:3", + "trueBody": { + "id": 1546, + "nodeType": "Block", + "src": "15174:784:3", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1526, + "nodeType": "Block", + "src": "15327:211:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1515, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1513, + "src": "15349:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1516, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "15361:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15378:22:3", + "memberName": "onERC1155BatchReceived", + "nodeType": "MemberAccess", + "referencedDeclaration": 1730, + "src": "15361:39:3", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15401:8:3", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "15361:48:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "15349:60:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1525, + "nodeType": "IfStatement", + "src": "15345:179:3", + "trueBody": { + "id": 1524, + "nodeType": "Block", + "src": "15411:113:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1521, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15502:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1520, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "15479:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15479:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1523, + "nodeType": "RevertStatement", + "src": "15472:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1527, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1513, + "mutability": "mutable", + "name": "response", + "nameLocation": "15304:8:3", + "nodeType": "VariableDeclaration", + "scope": 1527, + "src": "15297:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1512, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "15297:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "15279:47:3" + }, + "src": "15271:267:3" + }, + { + "block": { + "id": 1543, + "nodeType": "Block", + "src": "15567:381:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1531, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "15589:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15596:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15589:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15606:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15589:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1541, + "nodeType": "Block", + "src": "15744:190:3", + "statements": [ + { + "AST": { + "nativeSrc": "15830:86:3", + "nodeType": "YulBlock", + "src": "15830:86:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15867:2:3", + "nodeType": "YulLiteral", + "src": "15867:2:3", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "15871:6:3", + "nodeType": "YulIdentifier", + "src": "15871:6:3" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15863:3:3", + "nodeType": "YulIdentifier", + "src": "15863:3:3" + }, + "nativeSrc": "15863:15:3", + "nodeType": "YulFunctionCall", + "src": "15863:15:3" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "15886:6:3", + "nodeType": "YulIdentifier", + "src": "15886:6:3" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15880:5:3", + "nodeType": "YulIdentifier", + "src": "15880:5:3" + }, + "nativeSrc": "15880:13:3", + "nodeType": "YulFunctionCall", + "src": "15880:13:3" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15856:6:3", + "nodeType": "YulIdentifier", + "src": "15856:6:3" + }, + "nativeSrc": "15856:38:3", + "nodeType": "YulFunctionCall", + "src": "15856:38:3" + }, + "nativeSrc": "15856:38:3", + "nodeType": "YulExpressionStatement", + "src": "15856:38:3" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1529, + "isOffset": false, + "isSlot": false, + "src": "15871:6:3", + "valueSize": 1 + }, + { + "declaration": 1529, + "isOffset": false, + "isSlot": false, + "src": "15886:6:3", + "valueSize": 1 + } + ], + "id": 1540, + "nodeType": "InlineAssembly", + "src": "15821:95:3" + } + ] + }, + "id": 1542, + "nodeType": "IfStatement", + "src": "15585:349:3", + "trueBody": { + "id": 1539, + "nodeType": "Block", + "src": "15609:129:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1536, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15716:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1535, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "15693:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15693:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1538, + "nodeType": "RevertStatement", + "src": "15686:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1544, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1529, + "mutability": "mutable", + "name": "reason", + "nameLocation": "15559:6:3", + "nodeType": "VariableDeclaration", + "scope": 1544, + "src": "15546:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1528, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15546:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "15545:21:3" + }, + "src": "15539:409:3" + } + ], + "externalCall": { + "arguments": [ + { + "id": 1506, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "15236:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1507, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "15246:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1508, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1489, + "src": "15252:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1509, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "15257:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1510, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "15265:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1503, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15209:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1502, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "15192:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15192:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155Receiver_$1731", + "typeString": "contract IERC1155Receiver" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15213:22:3", + "memberName": "onERC1155BatchReceived", + "nodeType": "MemberAccess", + "referencedDeclaration": 1730, + "src": "15192:43:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15192:78:3", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1545, + "nodeType": "TryStatement", + "src": "15188:760:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 1480, + "nodeType": "StructuredDocumentation", + "src": "14741:177:3", + "text": " @dev Performs a batch acceptance check by calling {IERC1155-onERC1155BatchReceived} on the `to` address\n if it contains code at the moment of execution." + }, + "id": 1549, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_doSafeBatchTransferAcceptanceCheck", + "nameLocation": "14932:35:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1482, + "mutability": "mutable", + "name": "operator", + "nameLocation": "14985:8:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "14977:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14977:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "from", + "nameLocation": "15011:4:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15003:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15003:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "to", + "nameLocation": "15033:2:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15025:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15025:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "ids", + "nameLocation": "15062:3:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15045:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15045:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1488, + "nodeType": "ArrayTypeName", + "src": "15045:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "values", + "nameLocation": "15092:6:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15075:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15075:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1491, + "nodeType": "ArrayTypeName", + "src": "15075:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1494, + "mutability": "mutable", + "name": "data", + "nameLocation": "15121:4:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15108:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1493, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15108:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14967:164:3" + }, + "returnParameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [], + "src": "15140:0:3" + }, + "scope": 1566, + "src": "14923:1041:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1564, + "nodeType": "Block", + "src": "16238:691:3", + "statements": [ + { + "AST": { + "nativeSrc": "16300:623:3", + "nodeType": "YulBlock", + "src": "16300:623:3", + "statements": [ + { + "nativeSrc": "16358:21:3", + "nodeType": "YulAssignment", + "src": "16358:21:3", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16374:4:3", + "nodeType": "YulLiteral", + "src": "16374:4:3", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16368:5:3", + "nodeType": "YulIdentifier", + "src": "16368:5:3" + }, + "nativeSrc": "16368:11:3", + "nodeType": "YulFunctionCall", + "src": "16368:11:3" + }, + "variableNames": [ + { + "name": "array1", + "nativeSrc": "16358:6:3", + "nodeType": "YulIdentifier", + "src": "16358:6:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array1", + "nativeSrc": "16436:6:3", + "nodeType": "YulIdentifier", + "src": "16436:6:3" + }, + { + "kind": "number", + "nativeSrc": "16444:1:3", + "nodeType": "YulLiteral", + "src": "16444:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16429:6:3", + "nodeType": "YulIdentifier", + "src": "16429:6:3" + }, + "nativeSrc": "16429:17:3", + "nodeType": "YulFunctionCall", + "src": "16429:17:3" + }, + "nativeSrc": "16429:17:3", + "nodeType": "YulExpressionStatement", + "src": "16429:17:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "array1", + "nativeSrc": "16567:6:3", + "nodeType": "YulIdentifier", + "src": "16567:6:3" + }, + { + "kind": "number", + "nativeSrc": "16575:4:3", + "nodeType": "YulLiteral", + "src": "16575:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16563:3:3", + "nodeType": "YulIdentifier", + "src": "16563:3:3" + }, + "nativeSrc": "16563:17:3", + "nodeType": "YulFunctionCall", + "src": "16563:17:3" + }, + { + "name": "element1", + "nativeSrc": "16582:8:3", + "nodeType": "YulIdentifier", + "src": "16582:8:3" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16556:6:3", + "nodeType": "YulIdentifier", + "src": "16556:6:3" + }, + "nativeSrc": "16556:35:3", + "nodeType": "YulFunctionCall", + "src": "16556:35:3" + }, + "nativeSrc": "16556:35:3", + "nodeType": "YulExpressionStatement", + "src": "16556:35:3" + }, + { + "nativeSrc": "16682:27:3", + "nodeType": "YulAssignment", + "src": "16682:27:3", + "value": { + "arguments": [ + { + "name": "array1", + "nativeSrc": "16696:6:3", + "nodeType": "YulIdentifier", + "src": "16696:6:3" + }, + { + "kind": "number", + "nativeSrc": "16704:4:3", + "nodeType": "YulLiteral", + "src": "16704:4:3", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16692:3:3", + "nodeType": "YulIdentifier", + "src": "16692:3:3" + }, + "nativeSrc": "16692:17:3", + "nodeType": "YulFunctionCall", + "src": "16692:17:3" + }, + "variableNames": [ + { + "name": "array2", + "nativeSrc": "16682:6:3", + "nodeType": "YulIdentifier", + "src": "16682:6:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array2", + "nativeSrc": "16729:6:3", + "nodeType": "YulIdentifier", + "src": "16729:6:3" + }, + { + "kind": "number", + "nativeSrc": "16737:1:3", + "nodeType": "YulLiteral", + "src": "16737:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16722:6:3", + "nodeType": "YulIdentifier", + "src": "16722:6:3" + }, + "nativeSrc": "16722:17:3", + "nodeType": "YulFunctionCall", + "src": "16722:17:3" + }, + "nativeSrc": "16722:17:3", + "nodeType": "YulExpressionStatement", + "src": "16722:17:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "array2", + "nativeSrc": "16763:6:3", + "nodeType": "YulIdentifier", + "src": "16763:6:3" + }, + { + "kind": "number", + "nativeSrc": "16771:4:3", + "nodeType": "YulLiteral", + "src": "16771:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16759:3:3", + "nodeType": "YulIdentifier", + "src": "16759:3:3" + }, + "nativeSrc": "16759:17:3", + "nodeType": "YulFunctionCall", + "src": "16759:17:3" + }, + { + "name": "element2", + "nativeSrc": "16778:8:3", + "nodeType": "YulIdentifier", + "src": "16778:8:3" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16752:6:3", + "nodeType": "YulIdentifier", + "src": "16752:6:3" + }, + "nativeSrc": "16752:35:3", + "nodeType": "YulFunctionCall", + "src": "16752:35:3" + }, + "nativeSrc": "16752:35:3", + "nodeType": "YulExpressionStatement", + "src": "16752:35:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16889:4:3", + "nodeType": "YulLiteral", + "src": "16889:4:3", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "array2", + "nativeSrc": "16899:6:3", + "nodeType": "YulIdentifier", + "src": "16899:6:3" + }, + { + "kind": "number", + "nativeSrc": "16907:4:3", + "nodeType": "YulLiteral", + "src": "16907:4:3", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16895:3:3", + "nodeType": "YulIdentifier", + "src": "16895:3:3" + }, + "nativeSrc": "16895:17:3", + "nodeType": "YulFunctionCall", + "src": "16895:17:3" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16882:6:3", + "nodeType": "YulIdentifier", + "src": "16882:6:3" + }, + "nativeSrc": "16882:31:3", + "nodeType": "YulFunctionCall", + "src": "16882:31:3" + }, + "nativeSrc": "16882:31:3", + "nodeType": "YulExpressionStatement", + "src": "16882:31:3" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16358:6:3", + "valueSize": 1 + }, + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16436:6:3", + "valueSize": 1 + }, + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16567:6:3", + "valueSize": 1 + }, + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16696:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16682:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16729:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16763:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16899:6:3", + "valueSize": 1 + }, + { + "declaration": 1552, + "isOffset": false, + "isSlot": false, + "src": "16582:8:3", + "valueSize": 1 + }, + { + "declaration": 1554, + "isOffset": false, + "isSlot": false, + "src": "16778:8:3", + "valueSize": 1 + } + ], + "id": 1563, + "nodeType": "InlineAssembly", + "src": "16291:632:3" + } + ] + }, + "documentation": { + "id": 1550, + "nodeType": "StructuredDocumentation", + "src": "15970:105:3", + "text": " @dev Creates an array in memory with only one value for each of the elements provided." + }, + "id": 1565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_asSingletonArrays", + "nameLocation": "16089:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1552, + "mutability": "mutable", + "name": "element1", + "nameLocation": "16125:8:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16117:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16117:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "element2", + "nameLocation": "16151:8:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16143:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16143:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16107:58:3" + }, + "returnParameters": { + "id": 1562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1558, + "mutability": "mutable", + "name": "array1", + "nameLocation": "16205:6:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16188:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1557, + "nodeType": "ArrayTypeName", + "src": "16188:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1561, + "mutability": "mutable", + "name": "array2", + "nameLocation": "16230:6:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16213:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16213:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1560, + "nodeType": "ArrayTypeName", + "src": "16213:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "16187:50:3" + }, + "scope": 1566, + "src": "16080:849:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1567, + "src": "727:16204:3", + "usedErrors": [ + 480, + 485, + 490, + 497, + 502, + 507, + 514 + ], + "usedEvents": [ + 1586, + 1601, + 1610, + 1617 + ] + } + ], + "src": "109:16823:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", + "exportedSymbols": { + "IERC1155": [ + 1689 + ], + "IERC165": [ + 2556 + ] + }, + "id": 1690, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1568, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "110:24:4" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1570, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1690, + "sourceUnit": 2557, + "src": "136:62:4", + "symbolAliases": [ + { + "foreign": { + "id": 1569, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "144:7:4", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1572, + "name": "IERC165", + "nameLocations": [ + "358:7:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "358:7:4" + }, + "id": 1573, + "nodeType": "InheritanceSpecifier", + "src": "358:7:4" + } + ], + "canonicalName": "IERC1155", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1571, + "nodeType": "StructuredDocumentation", + "src": "200:135:4", + "text": " @dev Required interface of an ERC1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[EIP]." + }, + "fullyImplemented": false, + "id": 1689, + "linearizedBaseContracts": [ + 1689, + 2556 + ], + "name": "IERC1155", + "nameLocation": "346:8:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1574, + "nodeType": "StructuredDocumentation", + "src": "372:125:4", + "text": " @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`." + }, + "eventSelector": "c3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62", + "id": 1586, + "name": "TransferSingle", + "nameLocation": "508:14:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1576, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "539:8:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "523:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1578, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "565:4:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "549:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1580, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "587:2:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "571:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "571:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1582, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "599:2:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "591:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "591:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1584, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "611:5:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "603:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "603:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "522:95:4" + }, + "src": "502:116:4" + }, + { + "anonymous": false, + "documentation": { + "id": 1587, + "nodeType": "StructuredDocumentation", + "src": "624:144:4", + "text": " @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers." + }, + "eventSelector": "4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb", + "id": 1601, + "name": "TransferBatch", + "nameLocation": "779:13:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1589, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "818:8:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "802:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "802:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1591, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "852:4:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "836:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "836:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1593, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "882:2:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "866:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "866:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1596, + "indexed": false, + "mutability": "mutable", + "name": "ids", + "nameLocation": "904:3:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "894:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "894:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1595, + "nodeType": "ArrayTypeName", + "src": "894:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1599, + "indexed": false, + "mutability": "mutable", + "name": "values", + "nameLocation": "927:6:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "917:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "917:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1598, + "nodeType": "ArrayTypeName", + "src": "917:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "792:147:4" + }, + "src": "773:167:4" + }, + { + "anonymous": false, + "documentation": { + "id": 1602, + "nodeType": "StructuredDocumentation", + "src": "946:147:4", + "text": " @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 1610, + "name": "ApprovalForAll", + "nameLocation": "1104:14:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1604, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1135:7:4", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "1119:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1119:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1606, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1160:8:4", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "1144:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1605, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1144:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1608, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "1175:8:4", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "1170:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1607, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1170:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1118:66:4" + }, + "src": "1098:87:4" + }, + { + "anonymous": false, + "documentation": { + "id": 1611, + "nodeType": "StructuredDocumentation", + "src": "1191:343:4", + "text": " @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}." + }, + "eventSelector": "6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b", + "id": 1617, + "name": "URI", + "nameLocation": "1545:3:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1613, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "1556:5:4", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "1549:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1612, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1549:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1615, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1579:2:4", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "1563:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1563:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1548:34:4" + }, + "src": "1539:44:4" + }, + { + "documentation": { + "id": 1618, + "nodeType": "StructuredDocumentation", + "src": "1589:172:4", + "text": " @dev Returns the value of tokens of token type `id` owned by `account`.\n Requirements:\n - `account` cannot be the zero address." + }, + "functionSelector": "00fdd58e", + "id": 1627, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1775:9:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1620, + "mutability": "mutable", + "name": "account", + "nameLocation": "1793:7:4", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "1785:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1785:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1622, + "mutability": "mutable", + "name": "id", + "nameLocation": "1810:2:4", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "1802:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1802:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1784:29:4" + }, + "returnParameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "1837:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1837:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1836:9:4" + }, + "scope": 1689, + "src": "1766:80:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1628, + "nodeType": "StructuredDocumentation", + "src": "1852:188:4", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length." + }, + "functionSelector": "4e1273f4", + "id": 1640, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfBatch", + "nameLocation": "2054:14:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1631, + "mutability": "mutable", + "name": "accounts", + "nameLocation": "2097:8:4", + "nodeType": "VariableDeclaration", + "scope": 1640, + "src": "2078:27:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2078:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1630, + "nodeType": "ArrayTypeName", + "src": "2078:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2134:3:4", + "nodeType": "VariableDeclaration", + "scope": 1640, + "src": "2115:22:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2115:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1633, + "nodeType": "ArrayTypeName", + "src": "2115:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2068:75:4" + }, + "returnParameters": { + "id": 1639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1638, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1640, + "src": "2167:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2167:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1637, + "nodeType": "ArrayTypeName", + "src": "2167:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2166:18:4" + }, + "scope": 1689, + "src": "2045:140:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1641, + "nodeType": "StructuredDocumentation", + "src": "2191:248:4", + "text": " @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the caller." + }, + "functionSelector": "a22cb465", + "id": 1648, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "2453:17:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1643, + "mutability": "mutable", + "name": "operator", + "nameLocation": "2479:8:4", + "nodeType": "VariableDeclaration", + "scope": 1648, + "src": "2471:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2471:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "approved", + "nameLocation": "2494:8:4", + "nodeType": "VariableDeclaration", + "scope": 1648, + "src": "2489:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2489:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2470:33:4" + }, + "returnParameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "2512:0:4" + }, + "scope": 1689, + "src": "2444:69:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1649, + "nodeType": "StructuredDocumentation", + "src": "2519:135:4", + "text": " @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}." + }, + "functionSelector": "e985e9c5", + "id": 1658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "2668:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1651, + "mutability": "mutable", + "name": "account", + "nameLocation": "2693:7:4", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2685:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2685:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1653, + "mutability": "mutable", + "name": "operator", + "nameLocation": "2710:8:4", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2702:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2702:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2684:35:4" + }, + "returnParameters": { + "id": 1657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1656, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2743:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1655, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2743:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2742:6:4" + }, + "scope": 1689, + "src": "2659:90:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1659, + "nodeType": "StructuredDocumentation", + "src": "2755:910:4", + "text": " @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "functionSelector": "f242432a", + "id": 1672, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "3679:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "from", + "nameLocation": "3704:4:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3696:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "to", + "nameLocation": "3718:2:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3710:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3710:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "mutability": "mutable", + "name": "id", + "nameLocation": "3730:2:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3722:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3722:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "mutability": "mutable", + "name": "value", + "nameLocation": "3742:5:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3734:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3734:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1669, + "mutability": "mutable", + "name": "data", + "nameLocation": "3764:4:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3749:19:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1668, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3749:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3695:74:4" + }, + "returnParameters": { + "id": 1671, + "nodeType": "ParameterList", + "parameters": [], + "src": "3778:0:4" + }, + "scope": 1689, + "src": "3670:109:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1673, + "nodeType": "StructuredDocumentation", + "src": "3785:814:4", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n Requirements:\n - `ids` and `values` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value." + }, + "functionSelector": "2eb2c2d6", + "id": 1688, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeBatchTransferFrom", + "nameLocation": "4613:21:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1675, + "mutability": "mutable", + "name": "from", + "nameLocation": "4652:4:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4644:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4644:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "to", + "nameLocation": "4674:2:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4666:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4666:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1680, + "mutability": "mutable", + "name": "ids", + "nameLocation": "4705:3:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4686:22:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4686:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1679, + "nodeType": "ArrayTypeName", + "src": "4686:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1683, + "mutability": "mutable", + "name": "values", + "nameLocation": "4737:6:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4718:25:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1682, + "nodeType": "ArrayTypeName", + "src": "4718:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "data", + "nameLocation": "4768:4:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4753:19:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1684, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4753:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4634:144:4" + }, + "returnParameters": { + "id": 1687, + "nodeType": "ParameterList", + "parameters": [], + "src": "4787:0:4" + }, + "scope": 1689, + "src": "4604:184:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1690, + "src": "336:4454:4", + "usedErrors": [], + "usedEvents": [ + 1586, + 1601, + 1610, + 1617 + ] + } + ], + "src": "110:4681:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", + "exportedSymbols": { + "IERC1155Receiver": [ + 1731 + ], + "IERC165": [ + 2556 + ] + }, + "id": 1732, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1691, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "118:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1693, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1732, + "sourceUnit": 2557, + "src": "144:62:5", + "symbolAliases": [ + { + "foreign": { + "id": 1692, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "152:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1695, + "name": "IERC165", + "nameLocations": [ + "357:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "357:7:5" + }, + "id": 1696, + "nodeType": "InheritanceSpecifier", + "src": "357:7:5" + } + ], + "canonicalName": "IERC1155Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1694, + "nodeType": "StructuredDocumentation", + "src": "208:118:5", + "text": " @dev Interface that must be implemented by smart contracts in order to receive\n ERC-1155 token transfers." + }, + "fullyImplemented": false, + "id": 1731, + "linearizedBaseContracts": [ + 1731, + 2556 + ], + "name": "IERC1155Receiver", + "nameLocation": "337:16:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1697, + "nodeType": "StructuredDocumentation", + "src": "371:826:5", + "text": " @dev Handles the receipt of a single ERC1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n NOTE: To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed" + }, + "functionSelector": "f23a6e61", + "id": 1712, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC1155Received", + "nameLocation": "1211:17:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1699, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1246:8:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1238:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "from", + "nameLocation": "1272:4:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1264:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1264:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "id", + "nameLocation": "1294:2:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1286:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1705, + "mutability": "mutable", + "name": "value", + "nameLocation": "1314:5:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1306:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1306:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "data", + "nameLocation": "1344:4:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1329:19:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1706, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1329:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1228:126:5" + }, + "returnParameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1373:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1709, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1373:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1372:8:5" + }, + "scope": 1731, + "src": "1202:179:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1713, + "nodeType": "StructuredDocumentation", + "src": "1387:994:5", + "text": " @dev Handles the receipt of a multiple ERC1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated.\n NOTE: To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed" + }, + "functionSelector": "bc197c81", + "id": 1730, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC1155BatchReceived", + "nameLocation": "2395:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "operator", + "nameLocation": "2435:8:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2427:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2427:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1717, + "mutability": "mutable", + "name": "from", + "nameLocation": "2461:4:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2453:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2453:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1720, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2494:3:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2475:22:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1719, + "nodeType": "ArrayTypeName", + "src": "2475:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "values", + "nameLocation": "2526:6:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2507:25:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2507:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1722, + "nodeType": "ArrayTypeName", + "src": "2507:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "data", + "nameLocation": "2557:4:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2542:19:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1724, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2542:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2417:150:5" + }, + "returnParameters": { + "id": 1729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1728, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2586:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1727, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2586:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2585:8:5" + }, + "scope": 1731, + "src": "2386:208:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1732, + "src": "327:2269:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "118:2479:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "exportedSymbols": { + "IERC1155": [ + 1689 + ], + "IERC1155MetadataURI": [ + 1747 + ] + }, + "id": 1748, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1733, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "132:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", + "file": "../IERC1155.sol", + "id": 1735, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1748, + "sourceUnit": 1690, + "src": "158:41:6", + "symbolAliases": [ + { + "foreign": { + "id": 1734, + "name": "IERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "166:8:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1737, + "name": "IERC1155", + "nameLocations": [ + "399:8:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1689, + "src": "399:8:6" + }, + "id": 1738, + "nodeType": "InheritanceSpecifier", + "src": "399:8:6" + } + ], + "canonicalName": "IERC1155MetadataURI", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1736, + "nodeType": "StructuredDocumentation", + "src": "201:164:6", + "text": " @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]." + }, + "fullyImplemented": false, + "id": 1747, + "linearizedBaseContracts": [ + 1747, + 1689, + 2556 + ], + "name": "IERC1155MetadataURI", + "nameLocation": "376:19:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1739, + "nodeType": "StructuredDocumentation", + "src": "414:192:6", + "text": " @dev Returns the URI for token type `id`.\n If the `\\{id\\}` substring is present in the URI, it must be replaced by\n clients with the actual token type ID." + }, + "functionSelector": "0e89341c", + "id": 1746, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uri", + "nameLocation": "620:3:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1741, + "mutability": "mutable", + "name": "id", + "nameLocation": "632:2:6", + "nodeType": "VariableDeclaration", + "scope": 1746, + "src": "624:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "624:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "623:12:6" + }, + "returnParameters": { + "id": 1745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1746, + "src": "659:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "659:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "658:15:6" + }, + "scope": 1747, + "src": "611:63:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1748, + "src": "366:310:6", + "usedErrors": [], + "usedEvents": [ + 1586, + 1601, + 1610, + 1617 + ] + } + ], + "src": "132:545:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol", + "exportedSymbols": { + "Arrays": [ + 1930 + ], + "Math": [ + 3610 + ], + "StorageSlot": [ + 2070 + ] + }, + "id": 1931, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1749, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "100:24:7" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "file": "./StorageSlot.sol", + "id": 1751, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1931, + "sourceUnit": 2071, + "src": "126:46:7", + "symbolAliases": [ + { + "foreign": { + "id": 1750, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2070, + "src": "134:11:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 1753, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1931, + "sourceUnit": 3611, + "src": "173:37:7", + "symbolAliases": [ + { + "foreign": { + "id": 1752, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "181:4:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Arrays", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1754, + "nodeType": "StructuredDocumentation", + "src": "212:63:7", + "text": " @dev Collection of functions related to array types." + }, + "fullyImplemented": true, + "id": 1930, + "linearizedBaseContracts": [ + 1930 + ], + "name": "Arrays", + "nameLocation": "284:6:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1757, + "libraryName": { + "id": 1755, + "name": "StorageSlot", + "nameLocations": [ + "303:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2070, + "src": "303:11:7" + }, + "nodeType": "UsingForDirective", + "src": "297:30:7", + "typeName": { + "id": 1756, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "319:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + }, + { + "body": { + "id": 1839, + "nodeType": "Block", + "src": "843:834:7", + "statements": [ + { + "assignments": [ + 1769 + ], + "declarations": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "low", + "nameLocation": "861:3:7", + "nodeType": "VariableDeclaration", + "scope": 1839, + "src": "853:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "853:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1771, + "initialValue": { + "hexValue": "30", + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "867:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "853:15:7" + }, + { + "assignments": [ + 1773 + ], + "declarations": [ + { + "constant": false, + "id": 1773, + "mutability": "mutable", + "name": "high", + "nameLocation": "886:4:7", + "nodeType": "VariableDeclaration", + "scope": 1839, + "src": "878:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "878:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1776, + "initialValue": { + "expression": { + "id": 1774, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "893:5:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "899:6:7", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "893:12:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "878:27:7" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1777, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "920:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "928:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "920:9:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1783, + "nodeType": "IfStatement", + "src": "916:48:7", + "trueBody": { + "id": 1782, + "nodeType": "Block", + "src": "931:33:7", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1767, + "id": 1781, + "nodeType": "Return", + "src": "945:8:7" + } + ] + } + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "993:423:7", + "statements": [ + { + "assignments": [ + 1788 + ], + "declarations": [ + { + "constant": false, + "id": 1788, + "mutability": "mutable", + "name": "mid", + "nameLocation": "1015:3:7", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1007:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1007:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1794, + "initialValue": { + "arguments": [ + { + "id": 1791, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1034:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1792, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "1039:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1789, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "1021:4:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", + "typeString": "type(library Math)" + } + }, + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1026:7:7", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 2784, + "src": "1021:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:23:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1007:37:7" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1796, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "1282:5:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "id": 1797, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "1289:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1795, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1861, + 1882, + 1903 + ], + "referencedDeclaration": 1903, + "src": "1269:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$1975_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1269:24:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1294:5:7", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1974, + "src": "1269:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1800, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "1302:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1269:40:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1813, + "nodeType": "Block", + "src": "1360:46:7", + "statements": [ + { + "expression": { + "id": 1811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1807, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1378:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1808, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "1384:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1390:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1384:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1378:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1812, + "nodeType": "ExpressionStatement", + "src": "1378:13:7" + } + ] + }, + "id": 1814, + "nodeType": "IfStatement", + "src": "1265:141:7", + "trueBody": { + "id": 1806, + "nodeType": "Block", + "src": "1311:43:7", + "statements": [ + { + "expression": { + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1802, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "1329:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1803, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "1336:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1329:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1805, + "nodeType": "ExpressionStatement", + "src": "1329:10:7" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1784, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "981:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1785, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "987:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "981:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1816, + "nodeType": "WhileStatement", + "src": "974:442:7" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1817, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1533:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1539:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1533:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1821, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "1557:5:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1822, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1564:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1570:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1564:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1820, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1861, + 1882, + 1903 + ], + "referencedDeclaration": 1903, + "src": "1544:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$1975_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1544:28:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1573:5:7", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1974, + "src": "1544:34:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1827, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "1582:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1544:45:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1533:56:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1837, + "nodeType": "Block", + "src": "1636:35:7", + "statements": [ + { + "expression": { + "id": 1835, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1657:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1767, + "id": 1836, + "nodeType": "Return", + "src": "1650:10:7" + } + ] + }, + "id": 1838, + "nodeType": "IfStatement", + "src": "1529:142:7", + "trueBody": { + "id": 1834, + "nodeType": "Block", + "src": "1591:39:7", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1830, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1612:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1618:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1612:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1767, + "id": 1833, + "nodeType": "Return", + "src": "1605:14:7" + } + ] + } + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "333:407:7", + "text": " @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n `array` is expected to be sorted in ascending order, and to contain no\n repeated elements." + }, + "id": 1840, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "findUpperBound", + "nameLocation": "754:14:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "mutability": "mutable", + "name": "array", + "nameLocation": "787:5:7", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "769:23:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "769:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1760, + "nodeType": "ArrayTypeName", + "src": "769:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1763, + "mutability": "mutable", + "name": "element", + "nameLocation": "802:7:7", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "794:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "794:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "768:42:7" + }, + "returnParameters": { + "id": 1767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1766, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "834:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "834:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "833:9:7" + }, + "scope": 1930, + "src": "745:932:7", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1860, + "nodeType": "Block", + "src": "1993:459:7", + "statements": [ + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2011:4:7", + "nodeType": "VariableDeclaration", + "scope": 1860, + "src": "2003:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1852, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2003:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1854, + "nodeType": "VariableDeclarationStatement", + "src": "2003:12:7" + }, + { + "AST": { + "nativeSrc": "2316:92:7", + "nodeType": "YulBlock", + "src": "2316:92:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2337:1:7", + "nodeType": "YulLiteral", + "src": "2337:1:7", + "type": "", + "value": "0" + }, + { + "name": "arr.slot", + "nativeSrc": "2340:8:7", + "nodeType": "YulIdentifier", + "src": "2340:8:7" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2330:6:7", + "nodeType": "YulIdentifier", + "src": "2330:6:7" + }, + "nativeSrc": "2330:19:7", + "nodeType": "YulFunctionCall", + "src": "2330:19:7" + }, + "nativeSrc": "2330:19:7", + "nodeType": "YulExpressionStatement", + "src": "2330:19:7" + }, + { + "nativeSrc": "2362:36:7", + "nodeType": "YulAssignment", + "src": "2362:36:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2384:1:7", + "nodeType": "YulLiteral", + "src": "2384:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2387:4:7", + "nodeType": "YulLiteral", + "src": "2387:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "2374:9:7", + "nodeType": "YulIdentifier", + "src": "2374:9:7" + }, + "nativeSrc": "2374:18:7", + "nodeType": "YulFunctionCall", + "src": "2374:18:7" + }, + { + "name": "pos", + "nativeSrc": "2394:3:7", + "nodeType": "YulIdentifier", + "src": "2394:3:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2370:3:7", + "nodeType": "YulIdentifier", + "src": "2370:3:7" + }, + "nativeSrc": "2370:28:7", + "nodeType": "YulFunctionCall", + "src": "2370:28:7" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "2362:4:7", + "nodeType": "YulIdentifier", + "src": "2362:4:7" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1844, + "isOffset": false, + "isSlot": true, + "src": "2340:8:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1846, + "isOffset": false, + "isSlot": false, + "src": "2394:3:7", + "valueSize": 1 + }, + { + "declaration": 1853, + "isOffset": false, + "isSlot": false, + "src": "2362:4:7", + "valueSize": 1 + } + ], + "id": 1855, + "nodeType": "InlineAssembly", + "src": "2307:101:7" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1856, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2424:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2429:14:7", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1992, + "src": "2424:19:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1966_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2424:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "functionReturnParameters": 1851, + "id": 1859, + "nodeType": "Return", + "src": "2417:28:7" + } + ] + }, + "documentation": { + "id": 1841, + "nodeType": "StructuredDocumentation", + "src": "1683:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1861, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "1888:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "arr", + "nameLocation": "1919:3:7", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "1901:21:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1901:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1843, + "nodeType": "ArrayTypeName", + "src": "1901:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1846, + "mutability": "mutable", + "name": "pos", + "nameLocation": "1932:3:7", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "1924:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1924:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1900:36:7" + }, + "returnParameters": { + "id": 1851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1850, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "1960:31:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 1849, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1848, + "name": "StorageSlot.AddressSlot", + "nameLocations": [ + "1960:11:7", + "1972:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1966, + "src": "1960:23:7" + }, + "referencedDeclaration": 1966, + "src": "1960:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1959:33:7" + }, + "scope": 1930, + "src": "1879:573:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1881, + "nodeType": "Block", + "src": "2768:459:7", + "statements": [ + { + "assignments": [ + 1874 + ], + "declarations": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2786:4:7", + "nodeType": "VariableDeclaration", + "scope": 1881, + "src": "2778:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1873, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2778:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1875, + "nodeType": "VariableDeclarationStatement", + "src": "2778:12:7" + }, + { + "AST": { + "nativeSrc": "3091:92:7", + "nodeType": "YulBlock", + "src": "3091:92:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3112:1:7", + "nodeType": "YulLiteral", + "src": "3112:1:7", + "type": "", + "value": "0" + }, + { + "name": "arr.slot", + "nativeSrc": "3115:8:7", + "nodeType": "YulIdentifier", + "src": "3115:8:7" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3105:6:7", + "nodeType": "YulIdentifier", + "src": "3105:6:7" + }, + "nativeSrc": "3105:19:7", + "nodeType": "YulFunctionCall", + "src": "3105:19:7" + }, + "nativeSrc": "3105:19:7", + "nodeType": "YulExpressionStatement", + "src": "3105:19:7" + }, + { + "nativeSrc": "3137:36:7", + "nodeType": "YulAssignment", + "src": "3137:36:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3159:1:7", + "nodeType": "YulLiteral", + "src": "3159:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3162:4:7", + "nodeType": "YulLiteral", + "src": "3162:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3149:9:7", + "nodeType": "YulIdentifier", + "src": "3149:9:7" + }, + "nativeSrc": "3149:18:7", + "nodeType": "YulFunctionCall", + "src": "3149:18:7" + }, + { + "name": "pos", + "nativeSrc": "3169:3:7", + "nodeType": "YulIdentifier", + "src": "3169:3:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3145:3:7", + "nodeType": "YulIdentifier", + "src": "3145:3:7" + }, + "nativeSrc": "3145:28:7", + "nodeType": "YulFunctionCall", + "src": "3145:28:7" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "3137:4:7", + "nodeType": "YulIdentifier", + "src": "3137:4:7" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1865, + "isOffset": false, + "isSlot": true, + "src": "3115:8:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1867, + "isOffset": false, + "isSlot": false, + "src": "3169:3:7", + "valueSize": 1 + }, + { + "declaration": 1874, + "isOffset": false, + "isSlot": false, + "src": "3137:4:7", + "valueSize": 1 + } + ], + "id": 1876, + "nodeType": "InlineAssembly", + "src": "3082:101:7" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1877, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1874, + "src": "3199:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3204:14:7", + "memberName": "getBytes32Slot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2014, + "src": "3199:19:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$1972_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)" + } + }, + "id": 1879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3199:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot storage pointer" + } + }, + "functionReturnParameters": 1872, + "id": 1880, + "nodeType": "Return", + "src": "3192:28:7" + } + ] + }, + "documentation": { + "id": 1862, + "nodeType": "StructuredDocumentation", + "src": "2458:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "2663:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "arr", + "nameLocation": "2694:3:7", + "nodeType": "VariableDeclaration", + "scope": 1882, + "src": "2676:21:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1863, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2676:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1864, + "nodeType": "ArrayTypeName", + "src": "2676:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1867, + "mutability": "mutable", + "name": "pos", + "nameLocation": "2707:3:7", + "nodeType": "VariableDeclaration", + "scope": 1882, + "src": "2699:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2699:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2675:36:7" + }, + "returnParameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1882, + "src": "2735:31:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 1870, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1869, + "name": "StorageSlot.Bytes32Slot", + "nameLocations": [ + "2735:11:7", + "2747:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1972, + "src": "2735:23:7" + }, + "referencedDeclaration": 1972, + "src": "2735:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2734:33:7" + }, + "scope": 1930, + "src": "2654:573:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1902, + "nodeType": "Block", + "src": "3543:459:7", + "statements": [ + { + "assignments": [ + 1895 + ], + "declarations": [ + { + "constant": false, + "id": 1895, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3561:4:7", + "nodeType": "VariableDeclaration", + "scope": 1902, + "src": "3553:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3553:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1896, + "nodeType": "VariableDeclarationStatement", + "src": "3553:12:7" + }, + { + "AST": { + "nativeSrc": "3866:92:7", + "nodeType": "YulBlock", + "src": "3866:92:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3887:1:7", + "nodeType": "YulLiteral", + "src": "3887:1:7", + "type": "", + "value": "0" + }, + { + "name": "arr.slot", + "nativeSrc": "3890:8:7", + "nodeType": "YulIdentifier", + "src": "3890:8:7" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3880:6:7", + "nodeType": "YulIdentifier", + "src": "3880:6:7" + }, + "nativeSrc": "3880:19:7", + "nodeType": "YulFunctionCall", + "src": "3880:19:7" + }, + "nativeSrc": "3880:19:7", + "nodeType": "YulExpressionStatement", + "src": "3880:19:7" + }, + { + "nativeSrc": "3912:36:7", + "nodeType": "YulAssignment", + "src": "3912:36:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3934:1:7", + "nodeType": "YulLiteral", + "src": "3934:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3937:4:7", + "nodeType": "YulLiteral", + "src": "3937:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3924:9:7", + "nodeType": "YulIdentifier", + "src": "3924:9:7" + }, + "nativeSrc": "3924:18:7", + "nodeType": "YulFunctionCall", + "src": "3924:18:7" + }, + { + "name": "pos", + "nativeSrc": "3944:3:7", + "nodeType": "YulIdentifier", + "src": "3944:3:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3920:3:7", + "nodeType": "YulIdentifier", + "src": "3920:3:7" + }, + "nativeSrc": "3920:28:7", + "nodeType": "YulFunctionCall", + "src": "3920:28:7" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "3912:4:7", + "nodeType": "YulIdentifier", + "src": "3912:4:7" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1886, + "isOffset": false, + "isSlot": true, + "src": "3890:8:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1888, + "isOffset": false, + "isSlot": false, + "src": "3944:3:7", + "valueSize": 1 + }, + { + "declaration": 1895, + "isOffset": false, + "isSlot": false, + "src": "3912:4:7", + "valueSize": 1 + } + ], + "id": 1897, + "nodeType": "InlineAssembly", + "src": "3857:101:7" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1898, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1895, + "src": "3974:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3979:14:7", + "memberName": "getUint256Slot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2025, + "src": "3974:19:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$1975_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 1900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3974:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "functionReturnParameters": 1893, + "id": 1901, + "nodeType": "Return", + "src": "3967:28:7" + } + ] + }, + "documentation": { + "id": 1883, + "nodeType": "StructuredDocumentation", + "src": "3233:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1903, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "3438:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1886, + "mutability": "mutable", + "name": "arr", + "nameLocation": "3469:3:7", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "3451:21:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3451:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "nodeType": "ArrayTypeName", + "src": "3451:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1888, + "mutability": "mutable", + "name": "pos", + "nameLocation": "3482:3:7", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "3474:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3474:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3450:36:7" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "3510:31:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 1891, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1890, + "name": "StorageSlot.Uint256Slot", + "nameLocations": [ + "3510:11:7", + "3522:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1975, + "src": "3510:23:7" + }, + "referencedDeclaration": 1975, + "src": "3510:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "3509:33:7" + }, + "scope": 1930, + "src": "3429:573:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1915, + "nodeType": "Block", + "src": "4303:98:7", + "statements": [ + { + "AST": { + "nativeSrc": "4322:73:7", + "nodeType": "YulBlock", + "src": "4322:73:7", + "statements": [ + { + "nativeSrc": "4336:49:7", + "nodeType": "YulAssignment", + "src": "4336:49:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "4357:3:7", + "nodeType": "YulIdentifier", + "src": "4357:3:7" + }, + { + "kind": "number", + "nativeSrc": "4362:4:7", + "nodeType": "YulLiteral", + "src": "4362:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4353:3:7", + "nodeType": "YulIdentifier", + "src": "4353:3:7" + }, + "nativeSrc": "4353:14:7", + "nodeType": "YulFunctionCall", + "src": "4353:14:7" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4373:3:7", + "nodeType": "YulIdentifier", + "src": "4373:3:7" + }, + { + "kind": "number", + "nativeSrc": "4378:4:7", + "nodeType": "YulLiteral", + "src": "4378:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4369:3:7", + "nodeType": "YulIdentifier", + "src": "4369:3:7" + }, + "nativeSrc": "4369:14:7", + "nodeType": "YulFunctionCall", + "src": "4369:14:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4349:3:7", + "nodeType": "YulIdentifier", + "src": "4349:3:7" + }, + "nativeSrc": "4349:35:7", + "nodeType": "YulFunctionCall", + "src": "4349:35:7" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4343:5:7", + "nodeType": "YulIdentifier", + "src": "4343:5:7" + }, + "nativeSrc": "4343:42:7", + "nodeType": "YulFunctionCall", + "src": "4343:42:7" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "4336:3:7", + "nodeType": "YulIdentifier", + "src": "4336:3:7" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1907, + "isOffset": false, + "isSlot": false, + "src": "4357:3:7", + "valueSize": 1 + }, + { + "declaration": 1909, + "isOffset": false, + "isSlot": false, + "src": "4373:3:7", + "valueSize": 1 + }, + { + "declaration": 1912, + "isOffset": false, + "isSlot": false, + "src": "4336:3:7", + "valueSize": 1 + } + ], + "id": 1914, + "nodeType": "InlineAssembly", + "src": "4313:82:7" + } + ] + }, + "documentation": { + "id": 1904, + "nodeType": "StructuredDocumentation", + "src": "4008:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1916, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "4213:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1907, + "mutability": "mutable", + "name": "arr", + "nameLocation": "4249:3:7", + "nodeType": "VariableDeclaration", + "scope": 1916, + "src": "4232:20:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1906, + "nodeType": "ArrayTypeName", + "src": "4232:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1909, + "mutability": "mutable", + "name": "pos", + "nameLocation": "4262:3:7", + "nodeType": "VariableDeclaration", + "scope": 1916, + "src": "4254:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4254:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4231:35:7" + }, + "returnParameters": { + "id": 1913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1912, + "mutability": "mutable", + "name": "res", + "nameLocation": "4298:3:7", + "nodeType": "VariableDeclaration", + "scope": 1916, + "src": "4290:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4290:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4289:13:7" + }, + "scope": 1930, + "src": "4204:197:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1928, + "nodeType": "Block", + "src": "4702:98:7", + "statements": [ + { + "AST": { + "nativeSrc": "4721:73:7", + "nodeType": "YulBlock", + "src": "4721:73:7", + "statements": [ + { + "nativeSrc": "4735:49:7", + "nodeType": "YulAssignment", + "src": "4735:49:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "4756:3:7", + "nodeType": "YulIdentifier", + "src": "4756:3:7" + }, + { + "kind": "number", + "nativeSrc": "4761:4:7", + "nodeType": "YulLiteral", + "src": "4761:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4752:3:7", + "nodeType": "YulIdentifier", + "src": "4752:3:7" + }, + "nativeSrc": "4752:14:7", + "nodeType": "YulFunctionCall", + "src": "4752:14:7" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4772:3:7", + "nodeType": "YulIdentifier", + "src": "4772:3:7" + }, + { + "kind": "number", + "nativeSrc": "4777:4:7", + "nodeType": "YulLiteral", + "src": "4777:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4768:3:7", + "nodeType": "YulIdentifier", + "src": "4768:3:7" + }, + "nativeSrc": "4768:14:7", + "nodeType": "YulFunctionCall", + "src": "4768:14:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4748:3:7", + "nodeType": "YulIdentifier", + "src": "4748:3:7" + }, + "nativeSrc": "4748:35:7", + "nodeType": "YulFunctionCall", + "src": "4748:35:7" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4742:5:7", + "nodeType": "YulIdentifier", + "src": "4742:5:7" + }, + "nativeSrc": "4742:42:7", + "nodeType": "YulFunctionCall", + "src": "4742:42:7" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "4735:3:7", + "nodeType": "YulIdentifier", + "src": "4735:3:7" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1920, + "isOffset": false, + "isSlot": false, + "src": "4756:3:7", + "valueSize": 1 + }, + { + "declaration": 1922, + "isOffset": false, + "isSlot": false, + "src": "4772:3:7", + "valueSize": 1 + }, + { + "declaration": 1925, + "isOffset": false, + "isSlot": false, + "src": "4735:3:7", + "valueSize": 1 + } + ], + "id": 1927, + "nodeType": "InlineAssembly", + "src": "4712:82:7" + } + ] + }, + "documentation": { + "id": 1917, + "nodeType": "StructuredDocumentation", + "src": "4407:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1929, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "4612:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1920, + "mutability": "mutable", + "name": "arr", + "nameLocation": "4648:3:7", + "nodeType": "VariableDeclaration", + "scope": 1929, + "src": "4631:20:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4631:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1919, + "nodeType": "ArrayTypeName", + "src": "4631:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1922, + "mutability": "mutable", + "name": "pos", + "nameLocation": "4661:3:7", + "nodeType": "VariableDeclaration", + "scope": 1929, + "src": "4653:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4653:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4630:35:7" + }, + "returnParameters": { + "id": 1926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "res", + "nameLocation": "4697:3:7", + "nodeType": "VariableDeclaration", + "scope": 1929, + "src": "4689:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1924, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4689:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4688:13:7" + }, + "scope": 1930, + "src": "4603:197:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1931, + "src": "276:4526:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "100:4703:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 1960 + ] + }, + "id": 1961, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1932, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:8" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1933, + "nodeType": "StructuredDocumentation", + "src": "127:496:8", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1960, + "linearizedBaseContracts": [ + 1960 + ], + "name": "Context", + "nameLocation": "642:7:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1941, + "nodeType": "Block", + "src": "718:34:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1938, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1937, + "id": 1940, + "nodeType": "Return", + "src": "728:17:8" + } + ] + }, + "id": 1942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1934, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:8" + }, + "returnParameters": { + "id": 1937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1936, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1942, + "src": "709:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:8" + }, + "scope": 1960, + "src": "656:96:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1950, + "nodeType": "Block", + "src": "825:32:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1947, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:8", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1946, + "id": 1949, + "nodeType": "Return", + "src": "835:15:8" + } + ] + }, + "id": 1951, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:8" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1951, + "src": "809:14:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1944, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:8" + }, + "scope": 1960, + "src": "758:99:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1958, + "nodeType": "Block", + "src": "935:25:8", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1955, + "id": 1957, + "nodeType": "Return", + "src": "945:8:8" + } + ] + }, + "id": 1959, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1952, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:8" + }, + "returnParameters": { + "id": 1955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1959, + "src": "926:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:8" + }, + "scope": 1960, + "src": "863:97:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1961, + "src": "624:338:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "exportedSymbols": { + "StorageSlot": [ + 2070 + ] + }, + "id": 2071, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1962, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "193:24:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "StorageSlot", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1963, + "nodeType": "StructuredDocumentation", + "src": "219:1025:9", + "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```" + }, + "fullyImplemented": true, + "id": 2070, + "linearizedBaseContracts": [ + 2070 + ], + "name": "StorageSlot", + "nameLocation": "1253:11:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "StorageSlot.AddressSlot", + "id": 1966, + "members": [ + { + "constant": false, + "id": 1965, + "mutability": "mutable", + "name": "value", + "nameLocation": "1308:5:9", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "1300:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1300:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSlot", + "nameLocation": "1278:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1271:49:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BooleanSlot", + "id": 1969, + "members": [ + { + "constant": false, + "id": 1968, + "mutability": "mutable", + "name": "value", + "nameLocation": "1360:5:9", + "nodeType": "VariableDeclaration", + "scope": 1969, + "src": "1355:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1967, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1355:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "BooleanSlot", + "nameLocation": "1333:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1326:46:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Bytes32Slot", + "id": 1972, + "members": [ + { + "constant": false, + "id": 1971, + "mutability": "mutable", + "name": "value", + "nameLocation": "1415:5:9", + "nodeType": "VariableDeclaration", + "scope": 1972, + "src": "1407:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1970, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1407:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Slot", + "nameLocation": "1385:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1378:49:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Uint256Slot", + "id": 1975, + "members": [ + { + "constant": false, + "id": 1974, + "mutability": "mutable", + "name": "value", + "nameLocation": "1470:5:9", + "nodeType": "VariableDeclaration", + "scope": 1975, + "src": "1462:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1462:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Uint256Slot", + "nameLocation": "1440:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1433:49:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.StringSlot", + "id": 1978, + "members": [ + { + "constant": false, + "id": 1977, + "mutability": "mutable", + "name": "value", + "nameLocation": "1523:5:9", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "1516:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1976, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1516:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "StringSlot", + "nameLocation": "1495:10:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1488:47:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BytesSlot", + "id": 1981, + "members": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "value", + "nameLocation": "1574:5:9", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "1568:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1979, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1568:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "BytesSlot", + "nameLocation": "1548:9:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1541:45:9", + "visibility": "public" + }, + { + "body": { + "id": 1991, + "nodeType": "Block", + "src": "1768:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "1830:38:9", + "nodeType": "YulBlock", + "src": "1830:38:9", + "statements": [ + { + "nativeSrc": "1844:14:9", + "nodeType": "YulAssignment", + "src": "1844:14:9", + "value": { + "name": "slot", + "nativeSrc": "1854:4:9", + "nodeType": "YulIdentifier", + "src": "1854:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "1844:6:9", + "nodeType": "YulIdentifier", + "src": "1844:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1988, + "isOffset": false, + "isSlot": true, + "src": "1844:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1984, + "isOffset": false, + "isSlot": false, + "src": "1854:4:9", + "valueSize": 1 + } + ], + "id": 1990, + "nodeType": "InlineAssembly", + "src": "1821:47:9" + } + ] + }, + "documentation": { + "id": 1982, + "nodeType": "StructuredDocumentation", + "src": "1592:87:9", + "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." + }, + "id": 1992, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAddressSlot", + "nameLocation": "1693:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1984, + "mutability": "mutable", + "name": "slot", + "nameLocation": "1716:4:9", + "nodeType": "VariableDeclaration", + "scope": 1992, + "src": "1708:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1983, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1708:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1707:14:9" + }, + "returnParameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "r", + "nameLocation": "1765:1:9", + "nodeType": "VariableDeclaration", + "scope": 1992, + "src": "1745:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 1987, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1986, + "name": "AddressSlot", + "nameLocations": [ + "1745:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1966, + "src": "1745:11:9" + }, + "referencedDeclaration": 1966, + "src": "1745:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1744:23:9" + }, + "scope": 2070, + "src": "1684:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2002, + "nodeType": "Block", + "src": "2056:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2118:38:9", + "nodeType": "YulBlock", + "src": "2118:38:9", + "statements": [ + { + "nativeSrc": "2132:14:9", + "nodeType": "YulAssignment", + "src": "2132:14:9", + "value": { + "name": "slot", + "nativeSrc": "2142:4:9", + "nodeType": "YulIdentifier", + "src": "2142:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2132:6:9", + "nodeType": "YulIdentifier", + "src": "2132:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1999, + "isOffset": false, + "isSlot": true, + "src": "2132:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1995, + "isOffset": false, + "isSlot": false, + "src": "2142:4:9", + "valueSize": 1 + } + ], + "id": 2001, + "nodeType": "InlineAssembly", + "src": "2109:47:9" + } + ] + }, + "documentation": { + "id": 1993, + "nodeType": "StructuredDocumentation", + "src": "1880:87:9", + "text": " @dev Returns an `BooleanSlot` with member `value` located at `slot`." + }, + "id": 2003, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBooleanSlot", + "nameLocation": "1981:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1995, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2004:4:9", + "nodeType": "VariableDeclaration", + "scope": 2003, + "src": "1996:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1994, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1996:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1995:14:9" + }, + "returnParameters": { + "id": 2000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1999, + "mutability": "mutable", + "name": "r", + "nameLocation": "2053:1:9", + "nodeType": "VariableDeclaration", + "scope": 2003, + "src": "2033:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$1969_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + }, + "typeName": { + "id": 1998, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1997, + "name": "BooleanSlot", + "nameLocations": [ + "2033:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1969, + "src": "2033:11:9" + }, + "referencedDeclaration": 1969, + "src": "2033:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$1969_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2032:23:9" + }, + "scope": 2070, + "src": "1972:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2013, + "nodeType": "Block", + "src": "2344:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2406:38:9", + "nodeType": "YulBlock", + "src": "2406:38:9", + "statements": [ + { + "nativeSrc": "2420:14:9", + "nodeType": "YulAssignment", + "src": "2420:14:9", + "value": { + "name": "slot", + "nativeSrc": "2430:4:9", + "nodeType": "YulIdentifier", + "src": "2430:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2420:6:9", + "nodeType": "YulIdentifier", + "src": "2420:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2010, + "isOffset": false, + "isSlot": true, + "src": "2420:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2006, + "isOffset": false, + "isSlot": false, + "src": "2430:4:9", + "valueSize": 1 + } + ], + "id": 2012, + "nodeType": "InlineAssembly", + "src": "2397:47:9" + } + ] + }, + "documentation": { + "id": 2004, + "nodeType": "StructuredDocumentation", + "src": "2168:87:9", + "text": " @dev Returns an `Bytes32Slot` with member `value` located at `slot`." + }, + "id": 2014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytes32Slot", + "nameLocation": "2269:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2292:4:9", + "nodeType": "VariableDeclaration", + "scope": 2014, + "src": "2284:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2005, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2284:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2283:14:9" + }, + "returnParameters": { + "id": 2011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2010, + "mutability": "mutable", + "name": "r", + "nameLocation": "2341:1:9", + "nodeType": "VariableDeclaration", + "scope": 2014, + "src": "2321:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 2009, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2008, + "name": "Bytes32Slot", + "nameLocations": [ + "2321:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1972, + "src": "2321:11:9" + }, + "referencedDeclaration": 1972, + "src": "2321:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2320:23:9" + }, + "scope": 2070, + "src": "2260:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2024, + "nodeType": "Block", + "src": "2632:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2694:38:9", + "nodeType": "YulBlock", + "src": "2694:38:9", + "statements": [ + { + "nativeSrc": "2708:14:9", + "nodeType": "YulAssignment", + "src": "2708:14:9", + "value": { + "name": "slot", + "nativeSrc": "2718:4:9", + "nodeType": "YulIdentifier", + "src": "2718:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2708:6:9", + "nodeType": "YulIdentifier", + "src": "2708:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2021, + "isOffset": false, + "isSlot": true, + "src": "2708:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2017, + "isOffset": false, + "isSlot": false, + "src": "2718:4:9", + "valueSize": 1 + } + ], + "id": 2023, + "nodeType": "InlineAssembly", + "src": "2685:47:9" + } + ] + }, + "documentation": { + "id": 2015, + "nodeType": "StructuredDocumentation", + "src": "2456:87:9", + "text": " @dev Returns an `Uint256Slot` with member `value` located at `slot`." + }, + "id": 2025, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUint256Slot", + "nameLocation": "2557:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2017, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2580:4:9", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "2572:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2016, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2572:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2571:14:9" + }, + "returnParameters": { + "id": 2022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2021, + "mutability": "mutable", + "name": "r", + "nameLocation": "2629:1:9", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "2609:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 2020, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2019, + "name": "Uint256Slot", + "nameLocations": [ + "2609:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1975, + "src": "2609:11:9" + }, + "referencedDeclaration": 1975, + "src": "2609:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2608:23:9" + }, + "scope": 2070, + "src": "2548:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2035, + "nodeType": "Block", + "src": "2917:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2979:38:9", + "nodeType": "YulBlock", + "src": "2979:38:9", + "statements": [ + { + "nativeSrc": "2993:14:9", + "nodeType": "YulAssignment", + "src": "2993:14:9", + "value": { + "name": "slot", + "nativeSrc": "3003:4:9", + "nodeType": "YulIdentifier", + "src": "3003:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2993:6:9", + "nodeType": "YulIdentifier", + "src": "2993:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2032, + "isOffset": false, + "isSlot": true, + "src": "2993:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2028, + "isOffset": false, + "isSlot": false, + "src": "3003:4:9", + "valueSize": 1 + } + ], + "id": 2034, + "nodeType": "InlineAssembly", + "src": "2970:47:9" + } + ] + }, + "documentation": { + "id": 2026, + "nodeType": "StructuredDocumentation", + "src": "2744:86:9", + "text": " @dev Returns an `StringSlot` with member `value` located at `slot`." + }, + "id": 2036, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "2844:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2866:4:9", + "nodeType": "VariableDeclaration", + "scope": 2036, + "src": "2858:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2027, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2858:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2857:14:9" + }, + "returnParameters": { + "id": 2033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2032, + "mutability": "mutable", + "name": "r", + "nameLocation": "2914:1:9", + "nodeType": "VariableDeclaration", + "scope": 2036, + "src": "2895:20:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 2031, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2030, + "name": "StringSlot", + "nameLocations": [ + "2895:10:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1978, + "src": "2895:10:9" + }, + "referencedDeclaration": 1978, + "src": "2895:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2894:22:9" + }, + "scope": 2070, + "src": "2835:188:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2046, + "nodeType": "Block", + "src": "3225:112:9", + "statements": [ + { + "AST": { + "nativeSrc": "3287:44:9", + "nodeType": "YulBlock", + "src": "3287:44:9", + "statements": [ + { + "nativeSrc": "3301:20:9", + "nodeType": "YulAssignment", + "src": "3301:20:9", + "value": { + "name": "store.slot", + "nativeSrc": "3311:10:9", + "nodeType": "YulIdentifier", + "src": "3311:10:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3301:6:9", + "nodeType": "YulIdentifier", + "src": "3301:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2043, + "isOffset": false, + "isSlot": true, + "src": "3301:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2039, + "isOffset": false, + "isSlot": true, + "src": "3311:10:9", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 2045, + "nodeType": "InlineAssembly", + "src": "3278:53:9" + } + ] + }, + "documentation": { + "id": 2037, + "nodeType": "StructuredDocumentation", + "src": "3029:101:9", + "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." + }, + "id": 2047, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3144:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2039, + "mutability": "mutable", + "name": "store", + "nameLocation": "3173:5:9", + "nodeType": "VariableDeclaration", + "scope": 2047, + "src": "3158:20:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2038, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3158:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3157:22:9" + }, + "returnParameters": { + "id": 2044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2043, + "mutability": "mutable", + "name": "r", + "nameLocation": "3222:1:9", + "nodeType": "VariableDeclaration", + "scope": 2047, + "src": "3203:20:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 2042, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2041, + "name": "StringSlot", + "nameLocations": [ + "3203:10:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1978, + "src": "3203:10:9" + }, + "referencedDeclaration": 1978, + "src": "3203:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3202:22:9" + }, + "scope": 2070, + "src": "3135:202:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2057, + "nodeType": "Block", + "src": "3513:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "3575:38:9", + "nodeType": "YulBlock", + "src": "3575:38:9", + "statements": [ + { + "nativeSrc": "3589:14:9", + "nodeType": "YulAssignment", + "src": "3589:14:9", + "value": { + "name": "slot", + "nativeSrc": "3599:4:9", + "nodeType": "YulIdentifier", + "src": "3599:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3589:6:9", + "nodeType": "YulIdentifier", + "src": "3589:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2054, + "isOffset": false, + "isSlot": true, + "src": "3589:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2050, + "isOffset": false, + "isSlot": false, + "src": "3599:4:9", + "valueSize": 1 + } + ], + "id": 2056, + "nodeType": "InlineAssembly", + "src": "3566:47:9" + } + ] + }, + "documentation": { + "id": 2048, + "nodeType": "StructuredDocumentation", + "src": "3343:85:9", + "text": " @dev Returns an `BytesSlot` with member `value` located at `slot`." + }, + "id": 2058, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3442:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2050, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3463:4:9", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "3455:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2049, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3455:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3454:14:9" + }, + "returnParameters": { + "id": 2055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2054, + "mutability": "mutable", + "name": "r", + "nameLocation": "3510:1:9", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "3492:19:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 2053, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2052, + "name": "BytesSlot", + "nameLocations": [ + "3492:9:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1981, + "src": "3492:9:9" + }, + "referencedDeclaration": 1981, + "src": "3492:9:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3491:21:9" + }, + "scope": 2070, + "src": "3433:186:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2068, + "nodeType": "Block", + "src": "3816:112:9", + "statements": [ + { + "AST": { + "nativeSrc": "3878:44:9", + "nodeType": "YulBlock", + "src": "3878:44:9", + "statements": [ + { + "nativeSrc": "3892:20:9", + "nodeType": "YulAssignment", + "src": "3892:20:9", + "value": { + "name": "store.slot", + "nativeSrc": "3902:10:9", + "nodeType": "YulIdentifier", + "src": "3902:10:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3892:6:9", + "nodeType": "YulIdentifier", + "src": "3892:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2065, + "isOffset": false, + "isSlot": true, + "src": "3892:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2061, + "isOffset": false, + "isSlot": true, + "src": "3902:10:9", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 2067, + "nodeType": "InlineAssembly", + "src": "3869:53:9" + } + ] + }, + "documentation": { + "id": 2059, + "nodeType": "StructuredDocumentation", + "src": "3625:99:9", + "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." + }, + "id": 2069, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3738:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2061, + "mutability": "mutable", + "name": "store", + "nameLocation": "3765:5:9", + "nodeType": "VariableDeclaration", + "scope": 2069, + "src": "3751:19:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2060, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3751:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3750:21:9" + }, + "returnParameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2065, + "mutability": "mutable", + "name": "r", + "nameLocation": "3813:1:9", + "nodeType": "VariableDeclaration", + "scope": 2069, + "src": "3795:19:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 2064, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2063, + "name": "BytesSlot", + "nameLocations": [ + "3795:9:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1981, + "src": "3795:9:9" + }, + "referencedDeclaration": 1981, + "src": "3795:9:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3794:21:9" + }, + "scope": 2070, + "src": "3729:199:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2071, + "src": "1245:2685:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "193:3738:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 3610 + ], + "SignedMath": [ + 3715 + ], + "Strings": [ + 2325 + ] + }, + "id": 2326, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2072, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:10" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 2074, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2326, + "sourceUnit": 3611, + "src": "127:37:10", + "symbolAliases": [ + { + "foreign": { + "id": 2073, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "135:4:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 2076, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2326, + "sourceUnit": 3716, + "src": "165:49:10", + "symbolAliases": [ + { + "foreign": { + "id": 2075, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "173:10:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2077, + "nodeType": "StructuredDocumentation", + "src": "216:34:10", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2325, + "linearizedBaseContracts": [ + 2325 + ], + "name": "Strings", + "nameLocation": "259:7:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2080, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "298:10:10", + "nodeType": "VariableDeclaration", + "scope": 2325, + "src": "273:56:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 2078, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "273:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 2079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:18:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2083, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "358:14:10", + "nodeType": "VariableDeclaration", + "scope": 2325, + "src": "335:42:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2081, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 2082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 2084, + "nodeType": "StructuredDocumentation", + "src": "384:81:10", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 2090, + "name": "StringsInsufficientHexLength", + "nameLocation": "476:28:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "mutability": "mutable", + "name": "value", + "nameLocation": "513:5:10", + "nodeType": "VariableDeclaration", + "scope": 2090, + "src": "505:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2088, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:10", + "nodeType": "VariableDeclaration", + "scope": 2090, + "src": "520:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "504:31:10" + }, + "src": "470:66:10" + }, + { + "body": { + "id": 2137, + "nodeType": "Block", + "src": "708:627:10", + "statements": [ + { + "id": 2136, + "nodeType": "UncheckedBlock", + "src": "718:611:10", + "statements": [ + { + "assignments": [ + 2099 + ], + "declarations": [ + { + "constant": false, + "id": 2099, + "mutability": "mutable", + "name": "length", + "nameLocation": "750:6:10", + "nodeType": "VariableDeclaration", + "scope": 2136, + "src": "742:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2106, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2102, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "770:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2100, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "759:4:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", + "typeString": "type(library Math)" + } + }, + "id": 2101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "764:5:10", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 3430, + "src": "759:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:17:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "779:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "759:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "742:38:10" + }, + { + "assignments": [ + 2108 + ], + "declarations": [ + { + "constant": false, + "id": 2108, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "808:6:10", + "nodeType": "VariableDeclaration", + "scope": 2136, + "src": "794:20:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2107, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "794:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2113, + "initialValue": { + "arguments": [ + { + "id": 2111, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2099, + "src": "828:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "817:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 2109, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "821:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 2112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "817:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "794:41:10" + }, + { + "assignments": [ + 2115 + ], + "declarations": [ + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "857:3:10", + "nodeType": "VariableDeclaration", + "scope": 2136, + "src": "849:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2116, + "nodeType": "VariableDeclarationStatement", + "src": "849:11:10" + }, + { + "AST": { + "nativeSrc": "930:67:10", + "nodeType": "YulBlock", + "src": "930:67:10", + "statements": [ + { + "nativeSrc": "948:35:10", + "nodeType": "YulAssignment", + "src": "948:35:10", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "959:6:10", + "nodeType": "YulIdentifier", + "src": "959:6:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "971:2:10", + "nodeType": "YulLiteral", + "src": "971:2:10", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "975:6:10", + "nodeType": "YulIdentifier", + "src": "975:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "967:3:10", + "nodeType": "YulIdentifier", + "src": "967:3:10" + }, + "nativeSrc": "967:15:10", + "nodeType": "YulFunctionCall", + "src": "967:15:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "955:3:10", + "nodeType": "YulIdentifier", + "src": "955:3:10" + }, + "nativeSrc": "955:28:10", + "nodeType": "YulFunctionCall", + "src": "955:28:10" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "948:3:10", + "nodeType": "YulIdentifier", + "src": "948:3:10" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2108, + "isOffset": false, + "isSlot": false, + "src": "959:6:10", + "valueSize": 1 + }, + { + "declaration": 2099, + "isOffset": false, + "isSlot": false, + "src": "975:6:10", + "valueSize": 1 + }, + { + "declaration": 2115, + "isOffset": false, + "isSlot": false, + "src": "948:3:10", + "valueSize": 1 + } + ], + "id": 2117, + "nodeType": "InlineAssembly", + "src": "921:76:10" + }, + { + "body": { + "id": 2132, + "nodeType": "Block", + "src": "1023:269:10", + "statements": [ + { + "expression": { + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1041:5:10", + "subExpression": { + "id": 2119, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "1041:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2121, + "nodeType": "ExpressionStatement", + "src": "1041:5:10" + }, + { + "AST": { + "nativeSrc": "1124:86:10", + "nodeType": "YulBlock", + "src": "1124:86:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1154:3:10", + "nodeType": "YulIdentifier", + "src": "1154:3:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:10", + "nodeType": "YulIdentifier", + "src": "1168:5:10" + }, + { + "kind": "number", + "nativeSrc": "1175:2:10", + "nodeType": "YulLiteral", + "src": "1175:2:10", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1164:3:10", + "nodeType": "YulIdentifier", + "src": "1164:3:10" + }, + "nativeSrc": "1164:14:10", + "nodeType": "YulFunctionCall", + "src": "1164:14:10" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1180:10:10", + "nodeType": "YulIdentifier", + "src": "1180:10:10" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1159:4:10", + "nodeType": "YulIdentifier", + "src": "1159:4:10" + }, + "nativeSrc": "1159:32:10", + "nodeType": "YulFunctionCall", + "src": "1159:32:10" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1146:7:10", + "nodeType": "YulIdentifier", + "src": "1146:7:10" + }, + "nativeSrc": "1146:46:10", + "nodeType": "YulFunctionCall", + "src": "1146:46:10" + }, + "nativeSrc": "1146:46:10", + "nodeType": "YulExpressionStatement", + "src": "1146:46:10" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2080, + "isOffset": false, + "isSlot": false, + "src": "1180:10:10", + "valueSize": 1 + }, + { + "declaration": 2115, + "isOffset": false, + "isSlot": false, + "src": "1154:3:10", + "valueSize": 1 + }, + { + "declaration": 2093, + "isOffset": false, + "isSlot": false, + "src": "1168:5:10", + "valueSize": 1 + } + ], + "id": 2122, + "nodeType": "InlineAssembly", + "src": "1115:95:10" + }, + { + "expression": { + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2123, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "1227:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1236:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1227:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2126, + "nodeType": "ExpressionStatement", + "src": "1227:11:10" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2127, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "1260:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1260:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2131, + "nodeType": "IfStatement", + "src": "1256:21:10", + "trueBody": { + "id": 2130, + "nodeType": "Break", + "src": "1272:5:10" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 2118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1017:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 2133, + "nodeType": "WhileStatement", + "src": "1010:282:10" + }, + { + "expression": { + "id": 2134, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2108, + "src": "1312:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2097, + "id": 2135, + "nodeType": "Return", + "src": "1305:13:10" + } + ] + } + ] + }, + "documentation": { + "id": 2091, + "nodeType": "StructuredDocumentation", + "src": "542:90:10", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 2138, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "646:8:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2093, + "mutability": "mutable", + "name": "value", + "nameLocation": "663:5:10", + "nodeType": "VariableDeclaration", + "scope": 2138, + "src": "655:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "655:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "654:15:10" + }, + "returnParameters": { + "id": 2097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2096, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2138, + "src": "693:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2095, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "693:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "692:15:10" + }, + "scope": 2325, + "src": "637:698:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2163, + "nodeType": "Block", + "src": "1511:92:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 2151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2149, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "1542:5:10", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1550:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1542:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1560:2:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1542:20:10", + "trueExpression": { + "hexValue": "2d", + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1554:3:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2158, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "1588:5:10", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 2156, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "1573:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3715_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 2157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1584:3:10", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 3714, + "src": "1573:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1573:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2155, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2138, + "src": "1564:8:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1564:31:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2146, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:10", + "typeDescriptions": {} + } + }, + "id": 2148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1535:6:10", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1528:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1528:68:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2145, + "id": 2162, + "nodeType": "Return", + "src": "1521:75:10" + } + ] + }, + "documentation": { + "id": 2139, + "nodeType": "StructuredDocumentation", + "src": "1341:89:10", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 2164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "1444:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2141, + "mutability": "mutable", + "name": "value", + "nameLocation": "1466:5:10", + "nodeType": "VariableDeclaration", + "scope": 2164, + "src": "1459:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2140, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1459:6:10", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1458:14:10" + }, + "returnParameters": { + "id": 2145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2144, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2164, + "src": "1496:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2143, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1496:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1495:15:10" + }, + "scope": 2325, + "src": "1435:168:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2183, + "nodeType": "Block", + "src": "1782:100:10", + "statements": [ + { + "id": 2182, + "nodeType": "UncheckedBlock", + "src": "1792:84:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2173, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2167, + "src": "1835:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2176, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2167, + "src": "1854:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2174, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "1842:4:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", + "typeString": "type(library Math)" + } + }, + "id": 2175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1847:6:10", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 3552, + "src": "1842:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1842:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1863:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1842:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2172, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2184, + 2267, + 2287 + ], + "referencedDeclaration": 2267, + "src": "1823:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1823:42:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2171, + "id": 2181, + "nodeType": "Return", + "src": "1816:49:10" + } + ] + } + ] + }, + "documentation": { + "id": 2165, + "nodeType": "StructuredDocumentation", + "src": "1609:94:10", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 2184, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1717:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2167, + "mutability": "mutable", + "name": "value", + "nameLocation": "1737:5:10", + "nodeType": "VariableDeclaration", + "scope": 2184, + "src": "1729:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1728:15:10" + }, + "returnParameters": { + "id": 2171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2170, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2184, + "src": "1767:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2169, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1767:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1766:15:10" + }, + "scope": 2325, + "src": "1708:174:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2266, + "nodeType": "Block", + "src": "2095:435:10", + "statements": [ + { + "assignments": [ + 2195 + ], + "declarations": [ + { + "constant": false, + "id": 2195, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2113:10:10", + "nodeType": "VariableDeclaration", + "scope": 2266, + "src": "2105:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2105:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2197, + "initialValue": { + "id": 2196, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2187, + "src": "2126:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2105:26:10" + }, + { + "assignments": [ + 2199 + ], + "declarations": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2154:6:10", + "nodeType": "VariableDeclaration", + "scope": 2266, + "src": "2141:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2198, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2141:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2208, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2203, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2177:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2173:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2186:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2173:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2163:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2200, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2167:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2163:25:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2141:47:10" + }, + { + "expression": { + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2209, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2198:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2211, + "indexExpression": { + "hexValue": "30", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2205:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2198:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2210:3:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2198:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2214, + "nodeType": "ExpressionStatement", + "src": "2198:15:10" + }, + { + "expression": { + "id": 2219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2215, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2223:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2217, + "indexExpression": { + "hexValue": "31", + "id": 2216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2230:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2223:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2235:3:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2223:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2220, + "nodeType": "ExpressionStatement", + "src": "2223:15:10" + }, + { + "body": { + "id": 2249, + "nodeType": "Block", + "src": "2293:95:10", + "statements": [ + { + "expression": { + "id": 2243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2235, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2307:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2237, + "indexExpression": { + "id": 2236, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "2314:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 2238, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "2319:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 2242, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2239, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "2330:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:3:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2330:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2319:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2307:40:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2244, + "nodeType": "ExpressionStatement", + "src": "2307:40:10" + }, + { + "expression": { + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2245, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "2361:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2376:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2361:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2248, + "nodeType": "ExpressionStatement", + "src": "2361:16:10" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2229, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "2281:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2285:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2281:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2250, + "initializationExpression": { + "assignments": [ + 2222 + ], + "declarations": [ + { + "constant": false, + "id": 2222, + "mutability": "mutable", + "name": "i", + "nameLocation": "2261:1:10", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "2253:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2228, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2265:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2224, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2269:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2265:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2278:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2265:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2253:26:10" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2288:3:10", + "subExpression": { + "id": 2232, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "2290:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2234, + "nodeType": "ExpressionStatement", + "src": "2288:3:10" + }, + "nodeType": "ForStatement", + "src": "2248:140:10" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2251, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "2401:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2401:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2260, + "nodeType": "IfStatement", + "src": "2397:96:10", + "trueBody": { + "id": 2259, + "nodeType": "Block", + "src": "2418:75:10", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2187, + "src": "2468:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2256, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2475:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2254, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2090, + "src": "2439:28:10", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2439:43:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2258, + "nodeType": "RevertStatement", + "src": "2432:50:10" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2263, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2516:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2509:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2261, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2509:6:10", + "typeDescriptions": {} + } + }, + "id": 2264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2509:14:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2193, + "id": 2265, + "nodeType": "Return", + "src": "2502:21:10" + } + ] + }, + "documentation": { + "id": 2185, + "nodeType": "StructuredDocumentation", + "src": "1888:112:10", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 2267, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2014:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2187, + "mutability": "mutable", + "name": "value", + "nameLocation": "2034:5:10", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "2026:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2026:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2189, + "mutability": "mutable", + "name": "length", + "nameLocation": "2049:6:10", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "2041:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2041:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:31:10" + }, + "returnParameters": { + "id": 2193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "2080:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2079:15:10" + }, + "scope": 2325, + "src": "2005:525:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2286, + "nodeType": "Block", + "src": "2762:75:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2280, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2270, + "src": "2807:4:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2799:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2278, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2799:7:10", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2791:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:10", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2791:22:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2283, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "2815:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2275, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2184, + 2267, + 2287 + ], + "referencedDeclaration": 2267, + "src": "2779:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2779:51:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2274, + "id": 2285, + "nodeType": "Return", + "src": "2772:58:10" + } + ] + }, + "documentation": { + "id": 2268, + "nodeType": "StructuredDocumentation", + "src": "2536:148:10", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 2287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2698:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2270, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2718:4:10", + "nodeType": "VariableDeclaration", + "scope": 2287, + "src": "2710:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2709:14:10" + }, + "returnParameters": { + "id": 2274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2273, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2287, + "src": "2747:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2272, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2747:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2746:15:10" + }, + "scope": 2325, + "src": "2689:148:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2323, + "nodeType": "Block", + "src": "2992:104:10", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2299, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2290, + "src": "3015:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3009:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2297, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3009:5:10", + "typeDescriptions": {} + } + }, + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3009:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3009:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2304, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "3034:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3028:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3028:5:10", + "typeDescriptions": {} + } + }, + "id": 2305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3028:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3037:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3028:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3009:34:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2311, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2290, + "src": "3063:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2309, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3057:5:10", + "typeDescriptions": {} + } + }, + "id": 2312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2308, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3047:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3047:19:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "3086:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3080:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2315, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3080:5:10", + "typeDescriptions": {} + } + }, + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3080:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2314, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3070:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3070:19:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3047:42:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3009:80:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2296, + "id": 2322, + "nodeType": "Return", + "src": "3002:87:10" + } + ] + }, + "documentation": { + "id": 2288, + "nodeType": "StructuredDocumentation", + "src": "2843:66:10", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 2324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "2923:5:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2290, + "mutability": "mutable", + "name": "a", + "nameLocation": "2943:1:10", + "nodeType": "VariableDeclaration", + "scope": 2324, + "src": "2929:15:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2289, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2929:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2292, + "mutability": "mutable", + "name": "b", + "nameLocation": "2960:1:10", + "nodeType": "VariableDeclaration", + "scope": 2324, + "src": "2946:15:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2291, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2946:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2928:34:10" + }, + "returnParameters": { + "id": 2296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2295, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2324, + "src": "2986:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2294, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2986:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2985:6:10" + }, + "scope": 2325, + "src": "2914:182:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2326, + "src": "251:2847:10", + "usedErrors": [ + 2090 + ], + "usedEvents": [] + } + ], + "src": "101:2998:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 2349 + ], + "IERC165": [ + 2556 + ] + }, + "id": 2350, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2327, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2329, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2350, + "sourceUnit": 2557, + "src": "140:38:11", + "symbolAliases": [ + { + "foreign": { + "id": 2328, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "148:7:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2331, + "name": "IERC165", + "nameLocations": [ + "687:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "687:7:11" + }, + "id": 2332, + "nodeType": "InheritanceSpecifier", + "src": "687:7:11" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2330, + "nodeType": "StructuredDocumentation", + "src": "180:478:11", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 2349, + "linearizedBaseContracts": [ + 2349, + 2556 + ], + "name": "ERC165", + "nameLocation": "677:6:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 2555 + ], + "body": { + "id": 2347, + "nodeType": "Block", + "src": "844:64:11", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2340, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2335, + "src": "861:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2342, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "881:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2341, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "876:4:11", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "876:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", + "typeString": "type(contract IERC165)" + } + }, + "id": 2344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "890:11:11", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "876:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "861:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2339, + "id": 2346, + "nodeType": "Return", + "src": "854:47:11" + } + ] + }, + "documentation": { + "id": 2333, + "nodeType": "StructuredDocumentation", + "src": "701:56:11", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 2348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "771:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2335, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "796:11:11", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "789:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2334, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "789:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "788:20:11" + }, + "returnParameters": { + "id": 2339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2338, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "838:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2337, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:11" + }, + "scope": 2349, + "src": "762:146:11", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 2350, + "src": "659:251:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:797:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "exportedSymbols": { + "ERC165Checker": [ + 2544 + ], + "IERC165": [ + 2556 + ] + }, + "id": 2545, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2351, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "121:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2353, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2545, + "sourceUnit": 2557, + "src": "147:38:12", + "symbolAliases": [ + { + "foreign": { + "id": 2352, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "155:7:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC165Checker", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2354, + "nodeType": "StructuredDocumentation", + "src": "187:277:12", + "text": " @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases." + }, + "fullyImplemented": true, + "id": 2544, + "linearizedBaseContracts": [ + 2544 + ], + "name": "ERC165Checker", + "nameLocation": "473:13:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2357, + "mutability": "constant", + "name": "INTERFACE_ID_INVALID", + "nameLocation": "591:20:12", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "567:57:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2355, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "567:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30786666666666666666", + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "614:10:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "visibility": "private" + }, + { + "body": { + "id": 2379, + "nodeType": "Block", + "src": "789:356:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2366, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1023:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 2368, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "1037:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2367, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1032:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1032:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", + "typeString": "type(contract IERC165)" + } + }, + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1046:11:12", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1032:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2365, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "990:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "990:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1074:64:12", + "subExpression": { + "arguments": [ + { + "id": 2373, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1108:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2374, + "name": "INTERFACE_ID_INVALID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "1117:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2372, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1075:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1075:63:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "990:148:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2364, + "id": 2378, + "nodeType": "Return", + "src": "971:167:12" + } + ] + }, + "documentation": { + "id": 2358, + "nodeType": "StructuredDocumentation", + "src": "631:83:12", + "text": " @dev Returns true if `account` supports the {IERC165} interface." + }, + "id": 2380, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsERC165", + "nameLocation": "728:14:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2360, + "mutability": "mutable", + "name": "account", + "nameLocation": "751:7:12", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "743:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "743:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "742:17:12" + }, + "returnParameters": { + "id": 2364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2363, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "783:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2362, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "783:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "782:6:12" + }, + "scope": 2544, + "src": "719:426:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2399, + "nodeType": "Block", + "src": "1456:189:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2391, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1572:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2390, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "1557:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1557:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "arguments": [ + { + "id": 2394, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1617:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2395, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "1626:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2393, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1584:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1584:54:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1557:81:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2389, + "id": 2398, + "nodeType": "Return", + "src": "1550:88:12" + } + ] + }, + "documentation": { + "id": 2381, + "nodeType": "StructuredDocumentation", + "src": "1151:207:12", + "text": " @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}." + }, + "id": 2400, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1372:17:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2383, + "mutability": "mutable", + "name": "account", + "nameLocation": "1398:7:12", + "nodeType": "VariableDeclaration", + "scope": 2400, + "src": "1390:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1390:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2385, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1414:11:12", + "nodeType": "VariableDeclaration", + "scope": 2400, + "src": "1407:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2384, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1407:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1389:37:12" + }, + "returnParameters": { + "id": 2389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2400, + "src": "1450:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2387, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1450:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1449:6:12" + }, + "scope": 2544, + "src": "1363:282:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2455, + "nodeType": "Block", + "src": "2131:560:12", + "statements": [ + { + "assignments": [ + 2416 + ], + "declarations": [ + { + "constant": false, + "id": 2416, + "mutability": "mutable", + "name": "interfaceIdsSupported", + "nameLocation": "2254:21:12", + "nodeType": "VariableDeclaration", + "scope": 2455, + "src": "2240:35:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2414, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2240:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2415, + "nodeType": "ArrayTypeName", + "src": "2240:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "id": 2423, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2420, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2289:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2302:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2289:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2278:10:12", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" + }, + "typeName": { + "baseType": { + "id": 2417, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2282:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2418, + "nodeType": "ArrayTypeName", + "src": "2282:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + } + }, + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2278:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2240:69:12" + }, + { + "condition": { + "arguments": [ + { + "id": 2425, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2381:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2424, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "2366:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2366:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2452, + "nodeType": "IfStatement", + "src": "2362:284:12", + "trueBody": { + "id": 2451, + "nodeType": "Block", + "src": "2391:255:12", + "statements": [ + { + "body": { + "id": 2449, + "nodeType": "Block", + "src": "2518:118:12", + "statements": [ + { + "expression": { + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2438, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2536:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2440, + "indexExpression": { + "id": 2439, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2558:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2536:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 2442, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2596:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2443, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2605:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2445, + "indexExpression": { + "id": 2444, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2618:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2605:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2441, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "2563:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2563:58:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2536:85:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2448, + "nodeType": "ExpressionStatement", + "src": "2536:85:12" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2431, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2488:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2432, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2492:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2505:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2492:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2488:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2450, + "initializationExpression": { + "assignments": [ + 2428 + ], + "declarations": [ + { + "constant": false, + "id": 2428, + "mutability": "mutable", + "name": "i", + "nameLocation": "2481:1:12", + "nodeType": "VariableDeclaration", + "scope": 2450, + "src": "2473:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2473:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2430, + "initialValue": { + "hexValue": "30", + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2485:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2473:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2513:3:12", + "subExpression": { + "id": 2435, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2513:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2437, + "nodeType": "ExpressionStatement", + "src": "2513:3:12" + }, + "nodeType": "ForStatement", + "src": "2468:168:12" + } + ] + } + }, + { + "expression": { + "id": 2453, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2663:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "functionReturnParameters": 2411, + "id": 2454, + "nodeType": "Return", + "src": "2656:28:12" + } + ] + }, + "documentation": { + "id": 2401, + "nodeType": "StructuredDocumentation", + "src": "1651:336:12", + "text": " @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}." + }, + "id": 2456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSupportedInterfaces", + "nameLocation": "2001:22:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2403, + "mutability": "mutable", + "name": "account", + "nameLocation": "2041:7:12", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "2033:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "mutability": "mutable", + "name": "interfaceIds", + "nameLocation": "2074:12:12", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "2058:28:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2058:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2405, + "nodeType": "ArrayTypeName", + "src": "2058:8:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" + } + }, + "visibility": "internal" + } + ], + "src": "2023:69:12" + }, + "returnParameters": { + "id": 2411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "2116:13:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2408, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2116:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2409, + "nodeType": "ArrayTypeName", + "src": "2116:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "src": "2115:15:12" + }, + "scope": 2544, + "src": "1992:699:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2501, + "nodeType": "Block", + "src": "3133:436:12", + "statements": [ + { + "condition": { + "id": 2470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3189:24:12", + "subExpression": { + "arguments": [ + { + "id": 2468, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "3205:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2467, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "3190:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3190:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2474, + "nodeType": "IfStatement", + "src": "3185:67:12", + "trueBody": { + "id": 2473, + "nodeType": "Block", + "src": "3215:37:12", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3236:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2466, + "id": 2472, + "nodeType": "Return", + "src": "3229:12:12" + } + ] + } + }, + { + "body": { + "id": 2497, + "nodeType": "Block", + "src": "3371:134:12", + "statements": [ + { + "condition": { + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3389:59:12", + "subExpression": { + "arguments": [ + { + "id": 2487, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "3423:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2488, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3432:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2490, + "indexExpression": { + "id": 2489, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3445:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3432:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2486, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "3390:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:58:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "3385:110:12", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "3450:45:12", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3475:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2466, + "id": 2494, + "nodeType": "Return", + "src": "3468:12:12" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2479, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3341:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2480, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3345:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3358:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3345:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3341:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2498, + "initializationExpression": { + "assignments": [ + 2476 + ], + "declarations": [ + { + "constant": false, + "id": 2476, + "mutability": "mutable", + "name": "i", + "nameLocation": "3334:1:12", + "nodeType": "VariableDeclaration", + "scope": 2498, + "src": "3326:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3326:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2478, + "initialValue": { + "hexValue": "30", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3338:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3326:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3366:3:12", + "subExpression": { + "id": 2483, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3366:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2485, + "nodeType": "ExpressionStatement", + "src": "3366:3:12" + }, + "nodeType": "ForStatement", + "src": "3321:184:12" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2466, + "id": 2500, + "nodeType": "Return", + "src": "3551:11:12" + } + ] + }, + "documentation": { + "id": 2457, + "nodeType": "StructuredDocumentation", + "src": "2697:324:12", + "text": " @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}." + }, + "id": 2502, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsAllInterfaces", + "nameLocation": "3035:21:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2459, + "mutability": "mutable", + "name": "account", + "nameLocation": "3065:7:12", + "nodeType": "VariableDeclaration", + "scope": 2502, + "src": "3057:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3057:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "mutability": "mutable", + "name": "interfaceIds", + "nameLocation": "3090:12:12", + "nodeType": "VariableDeclaration", + "scope": 2502, + "src": "3074:28:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" + }, + "typeName": { + "baseType": { + "id": 2460, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3074:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2461, + "nodeType": "ArrayTypeName", + "src": "3074:8:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" + } + }, + "visibility": "internal" + } + ], + "src": "3056:47:12" + }, + "returnParameters": { + "id": 2466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2465, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2502, + "src": "3127:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2464, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3127:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3126:6:12" + }, + "scope": 2544, + "src": "3026:543:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2542, + "nodeType": "Block", + "src": "4505:524:12", + "statements": [ + { + "assignments": [ + 2513 + ], + "declarations": [ + { + "constant": false, + "id": 2513, + "mutability": "mutable", + "name": "encodedParams", + "nameLocation": "4552:13:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4539:26:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4539:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2521, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2516, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "4583:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + }, + "id": 2517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4591:17:12", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2555, + "src": "4583:25:12", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" + } + }, + { + "components": [ + { + "id": 2518, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2507, + "src": "4611:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "id": 2519, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4610:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 2514, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4568:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4572:10:12", + "memberName": "encodeCall", + "nodeType": "MemberAccess", + "src": "4568:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:56:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4539:85:12" + }, + { + "assignments": [ + 2523 + ], + "declarations": [ + { + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "success", + "nameLocation": "4671:7:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4666:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2522, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4666:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 2524, + "nodeType": "VariableDeclarationStatement", + "src": "4666:12:12" + }, + { + "assignments": [ + 2526 + ], + "declarations": [ + { + "constant": false, + "id": 2526, + "mutability": "mutable", + "name": "returnSize", + "nameLocation": "4696:10:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4688:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4688:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2527, + "nodeType": "VariableDeclarationStatement", + "src": "4688:18:12" + }, + { + "assignments": [ + 2529 + ], + "declarations": [ + { + "constant": false, + "id": 2529, + "mutability": "mutable", + "name": "returnValue", + "nameLocation": "4724:11:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4716:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4716:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2530, + "nodeType": "VariableDeclarationStatement", + "src": "4716:19:12" + }, + { + "AST": { + "nativeSrc": "4754:203:12", + "nodeType": "YulBlock", + "src": "4754:203:12", + "statements": [ + { + "nativeSrc": "4768:97:12", + "nodeType": "YulAssignment", + "src": "4768:97:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4790:5:12", + "nodeType": "YulLiteral", + "src": "4790:5:12", + "type": "", + "value": "30000" + }, + { + "name": "account", + "nativeSrc": "4797:7:12", + "nodeType": "YulIdentifier", + "src": "4797:7:12" + }, + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4810:13:12", + "nodeType": "YulIdentifier", + "src": "4810:13:12" + }, + { + "kind": "number", + "nativeSrc": "4825:4:12", + "nodeType": "YulLiteral", + "src": "4825:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4806:3:12", + "nodeType": "YulIdentifier", + "src": "4806:3:12" + }, + "nativeSrc": "4806:24:12", + "nodeType": "YulFunctionCall", + "src": "4806:24:12" + }, + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4838:13:12", + "nodeType": "YulIdentifier", + "src": "4838:13:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4832:5:12", + "nodeType": "YulIdentifier", + "src": "4832:5:12" + }, + "nativeSrc": "4832:20:12", + "nodeType": "YulFunctionCall", + "src": "4832:20:12" + }, + { + "kind": "number", + "nativeSrc": "4854:4:12", + "nodeType": "YulLiteral", + "src": "4854:4:12", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "4860:4:12", + "nodeType": "YulLiteral", + "src": "4860:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "4779:10:12", + "nodeType": "YulIdentifier", + "src": "4779:10:12" + }, + "nativeSrc": "4779:86:12", + "nodeType": "YulFunctionCall", + "src": "4779:86:12" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "4768:7:12", + "nodeType": "YulIdentifier", + "src": "4768:7:12" + } + ] + }, + { + "nativeSrc": "4878:30:12", + "nodeType": "YulAssignment", + "src": "4878:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "4892:14:12", + "nodeType": "YulIdentifier", + "src": "4892:14:12" + }, + "nativeSrc": "4892:16:12", + "nodeType": "YulFunctionCall", + "src": "4892:16:12" + }, + "variableNames": [ + { + "name": "returnSize", + "nativeSrc": "4878:10:12", + "nodeType": "YulIdentifier", + "src": "4878:10:12" + } + ] + }, + { + "nativeSrc": "4921:26:12", + "nodeType": "YulAssignment", + "src": "4921:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4942:4:12", + "nodeType": "YulLiteral", + "src": "4942:4:12", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4936:5:12", + "nodeType": "YulIdentifier", + "src": "4936:5:12" + }, + "nativeSrc": "4936:11:12", + "nodeType": "YulFunctionCall", + "src": "4936:11:12" + }, + "variableNames": [ + { + "name": "returnValue", + "nativeSrc": "4921:11:12", + "nodeType": "YulIdentifier", + "src": "4921:11:12" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2505, + "isOffset": false, + "isSlot": false, + "src": "4797:7:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4810:13:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4838:13:12", + "valueSize": 1 + }, + { + "declaration": 2526, + "isOffset": false, + "isSlot": false, + "src": "4878:10:12", + "valueSize": 1 + }, + { + "declaration": 2529, + "isOffset": false, + "isSlot": false, + "src": "4921:11:12", + "valueSize": 1 + }, + { + "declaration": 2523, + "isOffset": false, + "isSlot": false, + "src": "4768:7:12", + "valueSize": 1 + } + ], + "id": 2531, + "nodeType": "InlineAssembly", + "src": "4745:212:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2532, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "4974:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "returnSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2526, + "src": "4985:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30783230", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4999:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4985:18:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4974:29:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2537, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2529, + "src": "5007:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5021:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5007:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4974:48:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2511, + "id": 2541, + "nodeType": "Return", + "src": "4967:55:12" + } + ] + }, + "documentation": { + "id": 2503, + "nodeType": "StructuredDocumentation", + "src": "3575:817:12", + "text": " @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Some precompiled contracts will falsely indicate support for a given interface, so caution\n should be exercised when using this function.\n Interface identification is specified in ERC-165." + }, + "id": 2543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsERC165InterfaceUnchecked", + "nameLocation": "4406:32:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2505, + "mutability": "mutable", + "name": "account", + "nameLocation": "4447:7:12", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "4439:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4439:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2507, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "4463:11:12", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "4456:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2506, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4456:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "4438:37:12" + }, + "returnParameters": { + "id": 2511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2510, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "4499:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2509, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4499:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4498:6:12" + }, + "scope": 2544, + "src": "4397:632:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2545, + "src": "465:4566:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "121:4911:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2556 + ] + }, + "id": 2557, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2546, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:13" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2547, + "nodeType": "StructuredDocumentation", + "src": "141:279:13", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 2556, + "linearizedBaseContracts": [ + 2556 + ], + "name": "IERC165", + "nameLocation": "431:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2548, + "nodeType": "StructuredDocumentation", + "src": "445:340:13", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 2555, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2550, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:13", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "817:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2549, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "817:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "816:20:13" + }, + "returnParameters": { + "id": 2554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "860:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:13" + }, + "scope": 2556, + "src": "790:76:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2557, + "src": "421:447:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3610 + ] + }, + "id": 3611, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2558, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:14" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "129:73:14", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3610, + "linearizedBaseContracts": [ + 3610 + ], + "name": "Math", + "nameLocation": "211:4:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2560, + "nodeType": "StructuredDocumentation", + "src": "222:50:14", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 2562, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2561, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:14" + }, + "src": "277:29:14" + }, + { + "canonicalName": "Math.Rounding", + "id": 2567, + "members": [ + { + "id": 2563, + "name": "Floor", + "nameLocation": "336:5:14", + "nodeType": "EnumValue", + "src": "336:5:14" + }, + { + "id": 2564, + "name": "Ceil", + "nameLocation": "379:4:14", + "nodeType": "EnumValue", + "src": "379:4:14" + }, + { + "id": 2565, + "name": "Trunc", + "nameLocation": "421:5:14", + "nodeType": "EnumValue", + "src": "421:5:14" + }, + { + "id": 2566, + "name": "Expand", + "nameLocation": "451:6:14", + "nodeType": "EnumValue", + "src": "451:6:14" + } + ], + "name": "Rounding", + "nameLocation": "317:8:14", + "nodeType": "EnumDefinition", + "src": "312:169:14" + }, + { + "body": { + "id": 2598, + "nodeType": "Block", + "src": "661:140:14", + "statements": [ + { + "id": 2597, + "nodeType": "UncheckedBlock", + "src": "671:124:14", + "statements": [ + { + "assignments": [ + 2580 + ], + "declarations": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:14", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "695:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2584, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2581, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "707:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 2582, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "711:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2585, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "730:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2586, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "734:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2592, + "nodeType": "IfStatement", + "src": "726:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2590, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "744:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2578, + "id": 2591, + "nodeType": "Return", + "src": "737:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2594, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "782:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2595, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "775:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2578, + "id": 2596, + "nodeType": "Return", + "src": "768:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "487:93:14", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + }, + "id": 2599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "594:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:14", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2572, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:14", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "612:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:14" + }, + "returnParameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2575, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "646:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2574, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "646:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2577, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "652:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "652:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:15:14" + }, + "scope": 3610, + "src": "585:216:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2626, + "nodeType": "Block", + "src": "984:113:14", + "statements": [ + { + "id": 2625, + "nodeType": "UncheckedBlock", + "src": "994:97:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2611, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2612, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1026:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2618, + "nodeType": "IfStatement", + "src": "1018:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2616, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2610, + "id": 2617, + "nodeType": "Return", + "src": "1029:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2620, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1074:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2621, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1078:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2623, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2610, + "id": 2624, + "nodeType": "Return", + "src": "1060:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2600, + "nodeType": "StructuredDocumentation", + "src": "807:96:14", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + }, + "id": 2627, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "917:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "a", + "nameLocation": "932:1:14", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "924:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "924:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2604, + "mutability": "mutable", + "name": "b", + "nameLocation": "943:1:14", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "935:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "935:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "923:22:14" + }, + "returnParameters": { + "id": 2610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2607, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2606, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2609, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "975:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:15:14" + }, + "scope": 3610, + "src": "908:189:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2668, + "nodeType": "Block", + "src": "1283:417:14", + "statements": [ + { + "id": 2667, + "nodeType": "UncheckedBlock", + "src": "1293:401:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2639, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2646, + "nodeType": "IfStatement", + "src": "1547:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2644, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2645, + "nodeType": "Return", + "src": "1559:16:14" + } + }, + { + "assignments": [ + 2648 + ], + "declarations": [ + { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:14", + "nodeType": "VariableDeclaration", + "scope": 2667, + "src": "1589:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2652, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2649, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2650, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2653, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1624:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2654, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1628:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2656, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1633:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2662, + "nodeType": "IfStatement", + "src": "1620:33:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2660, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2661, + "nodeType": "Return", + "src": "1636:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1675:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2664, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1681:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2665, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1674:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2638, + "id": 2666, + "nodeType": "Return", + "src": "1667:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 2628, + "nodeType": "StructuredDocumentation", + "src": "1103:99:14", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + }, + "id": 2669, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1216:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2630, + "mutability": "mutable", + "name": "a", + "nameLocation": "1231:1:14", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1223:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2632, + "mutability": "mutable", + "name": "b", + "nameLocation": "1242:1:14", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1234:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1222:22:14" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2635, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1268:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2634, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2637, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1274:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1267:15:14" + }, + "scope": 3610, + "src": "1207:493:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2696, + "nodeType": "Block", + "src": "1887:114:14", + "statements": [ + { + "id": 2695, + "nodeType": "UncheckedBlock", + "src": "1897:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2681, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1925:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1930:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1925:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2688, + "nodeType": "IfStatement", + "src": "1921:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1941:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2686, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1940:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2680, + "id": 2687, + "nodeType": "Return", + "src": "1933:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2690, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "1978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2691, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1982:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2693, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1971:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2680, + "id": 2694, + "nodeType": "Return", + "src": "1964:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2670, + "nodeType": "StructuredDocumentation", + "src": "1706:100:14", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + }, + "id": 2697, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1820:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "mutability": "mutable", + "name": "a", + "nameLocation": "1835:1:14", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1827:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1827:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2674, + "mutability": "mutable", + "name": "b", + "nameLocation": "1846:1:14", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1838:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1826:22:14" + }, + "returnParameters": { + "id": 2680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2677, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1872:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2676, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2679, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1878:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1878:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1871:15:14" + }, + "scope": 3610, + "src": "1811:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2724, + "nodeType": "Block", + "src": "2198:114:14", + "statements": [ + { + "id": 2723, + "nodeType": "UncheckedBlock", + "src": "2208:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2709, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2236:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2236:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2716, + "nodeType": "IfStatement", + "src": "2232:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2714, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2251:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2708, + "id": 2715, + "nodeType": "Return", + "src": "2244:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2718, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2289:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2719, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2293:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2289:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2721, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2282:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2708, + "id": 2722, + "nodeType": "Return", + "src": "2275:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2698, + "nodeType": "StructuredDocumentation", + "src": "2007:110:14", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2138:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2702, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2149:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:14" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2705, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2704, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2189:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:14" + }, + "scope": 3610, + "src": "2122:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2742, + "nodeType": "Block", + "src": "2449:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2735, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2466:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2736, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2470:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2739, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2478:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:14", + "trueExpression": { + "id": 2738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2474:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2734, + "id": 2741, + "nodeType": "Return", + "src": "2459:20:14" + } + ] + }, + "documentation": { + "id": 2726, + "nodeType": "StructuredDocumentation", + "src": "2318:59:14", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2743, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2728, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2395:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2730, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2406:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:14" + }, + "returnParameters": { + "id": 2734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2733, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:14" + }, + "scope": 3610, + "src": "2382:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2760, + "nodeType": "Block", + "src": "2624:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2753, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2641:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2754, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2645:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2757, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:14", + "trueExpression": { + "id": 2756, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2649:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2752, + "id": 2759, + "nodeType": "Return", + "src": "2634:20:14" + } + ] + }, + "documentation": { + "id": 2744, + "nodeType": "StructuredDocumentation", + "src": "2492:60:14", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2761, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2570:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2748, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2581:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:14" + }, + "returnParameters": { + "id": 2752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2751, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2615:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:14" + }, + "scope": 3610, + "src": "2557:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2783, + "nodeType": "Block", + "src": "2845:82:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2771, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2900:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2772, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2904:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2774, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2910:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2776, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2914:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2910:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2778, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2909:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2899:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2770, + "id": 2782, + "nodeType": "Return", + "src": "2892:28:14" + } + ] + }, + "documentation": { + "id": 2762, + "nodeType": "StructuredDocumentation", + "src": "2667:102:14", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2764, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2791:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2766, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2802:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:14" + }, + "returnParameters": { + "id": 2770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2769, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2836:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:14" + }, + "scope": 3610, + "src": "2774:153:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2817, + "nodeType": "Block", + "src": "3219:260:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3233:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2802, + "nodeType": "IfStatement", + "src": "3229:127:14", + "trueBody": { + "id": 2801, + "nodeType": "Block", + "src": "3241:115:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3340:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3344:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2800, + "nodeType": "Return", + "src": "3333:12:14" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2803, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2807, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3458:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2810, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2811, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3467:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3457:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:14", + "trueExpression": { + "hexValue": "30", + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2816, + "nodeType": "Return", + "src": "3437:35:14" + } + ] + }, + "documentation": { + "id": 2785, + "nodeType": "StructuredDocumentation", + "src": "2933:210:14", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2787, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3165:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3176:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:14" + }, + "returnParameters": { + "id": 2793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3210:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:14" + }, + "scope": 3610, + "src": "3148:331:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2943, + "nodeType": "Block", + "src": "3901:4018:14", + "statements": [ + { + "id": 2942, + "nodeType": "UncheckedBlock", + "src": "3911:4002:14", + "statements": [ + { + "assignments": [ + 2831 + ], + "declarations": [ + { + "constant": false, + "id": 2831, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "4232:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2835, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2832, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "4248:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2833, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2823, + "src": "4252:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:14" + }, + { + "assignments": [ + 2837 + ], + "declarations": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "4320:5:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "4312:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4312:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2838, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:14" + }, + { + "AST": { + "nativeSrc": "4392:122:14", + "nodeType": "YulBlock", + "src": "4392:122:14", + "statements": [ + { + "nativeSrc": "4410:30:14", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:14", + "nodeType": "YulIdentifier", + "src": "4427:1:14" + }, + { + "name": "y", + "nativeSrc": "4430:1:14", + "nodeType": "YulIdentifier", + "src": "4430:1:14" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:14", + "nodeType": "YulLiteral", + "src": "4437:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:14", + "nodeType": "YulIdentifier", + "src": "4433:3:14" + }, + "nativeSrc": "4433:6:14", + "nodeType": "YulFunctionCall", + "src": "4433:6:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:14", + "nodeType": "YulIdentifier", + "src": "4420:6:14" + }, + "nativeSrc": "4420:20:14", + "nodeType": "YulFunctionCall", + "src": "4420:20:14" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:14", + "nodeType": "YulTypedName", + "src": "4414:2:14", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:14", + "nodeType": "YulAssignment", + "src": "4457:43:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:14", + "nodeType": "YulIdentifier", + "src": "4474:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:14", + "nodeType": "YulIdentifier", + "src": "4478:5:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:14", + "nodeType": "YulIdentifier", + "src": "4470:3:14" + }, + "nativeSrc": "4470:14:14", + "nodeType": "YulFunctionCall", + "src": "4470:14:14" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:14", + "nodeType": "YulIdentifier", + "src": "4489:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:14", + "nodeType": "YulIdentifier", + "src": "4493:5:14" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:14", + "nodeType": "YulIdentifier", + "src": "4486:2:14" + }, + "nativeSrc": "4486:13:14", + "nodeType": "YulFunctionCall", + "src": "4486:13:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:14", + "nodeType": "YulIdentifier", + "src": "4466:3:14" + }, + "nativeSrc": "4466:34:14", + "nodeType": "YulFunctionCall", + "src": "4466:34:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:14", + "nodeType": "YulIdentifier", + "src": "4457:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4478:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4493:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "4457:5:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "4427:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "4430:1:14", + "valueSize": 1 + } + ], + "id": 2839, + "nodeType": "InlineAssembly", + "src": "4383:131:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2840, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "4595:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2848, + "nodeType": "IfStatement", + "src": "4591:368:14", + "trueBody": { + "id": 2847, + "nodeType": "Block", + "src": "4607:352:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2843, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "4925:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2844, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "4933:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4925:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2846, + "nodeType": "Return", + "src": "4918:26:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2849, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2850, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "5080:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2856, + "nodeType": "IfStatement", + "src": "5061:88:14", + "trueBody": { + "id": 2855, + "nodeType": "Block", + "src": "5087:62:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2852, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2562, + "src": "5112:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2854, + "nodeType": "RevertStatement", + "src": "5105:29:14" + } + ] + } + }, + { + "assignments": [ + 2858 + ], + "declarations": [ + { + "constant": false, + "id": 2858, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5404:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2859, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:14" + }, + { + "AST": { + "nativeSrc": "5444:291:14", + "nodeType": "YulBlock", + "src": "5444:291:14", + "statements": [ + { + "nativeSrc": "5513:38:14", + "nodeType": "YulAssignment", + "src": "5513:38:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:14", + "nodeType": "YulIdentifier", + "src": "5533:1:14" + }, + { + "name": "y", + "nativeSrc": "5536:1:14", + "nodeType": "YulIdentifier", + "src": "5536:1:14" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:14", + "nodeType": "YulIdentifier", + "src": "5539:11:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:14", + "nodeType": "YulIdentifier", + "src": "5526:6:14" + }, + "nativeSrc": "5526:25:14", + "nodeType": "YulFunctionCall", + "src": "5526:25:14" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:14", + "nodeType": "YulIdentifier", + "src": "5513:9:14" + } + ] + }, + { + "nativeSrc": "5633:41:14", + "nodeType": "YulAssignment", + "src": "5633:41:14", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:14", + "nodeType": "YulIdentifier", + "src": "5646:5:14" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:14", + "nodeType": "YulIdentifier", + "src": "5656:9:14" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:14", + "nodeType": "YulIdentifier", + "src": "5667:5:14" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:14", + "nodeType": "YulIdentifier", + "src": "5653:2:14" + }, + "nativeSrc": "5653:20:14", + "nodeType": "YulFunctionCall", + "src": "5653:20:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:14", + "nodeType": "YulIdentifier", + "src": "5642:3:14" + }, + "nativeSrc": "5642:32:14", + "nodeType": "YulFunctionCall", + "src": "5642:32:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:14", + "nodeType": "YulIdentifier", + "src": "5633:5:14" + } + ] + }, + { + "nativeSrc": "5691:30:14", + "nodeType": "YulAssignment", + "src": "5691:30:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:14", + "nodeType": "YulIdentifier", + "src": "5704:5:14" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:14", + "nodeType": "YulIdentifier", + "src": "5711:9:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:14", + "nodeType": "YulIdentifier", + "src": "5700:3:14" + }, + "nativeSrc": "5700:21:14", + "nodeType": "YulFunctionCall", + "src": "5700:21:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:14", + "nodeType": "YulIdentifier", + "src": "5691:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "5539:11:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5667:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5691:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5704:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5633:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5646:5:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5513:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5656:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5711:9:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "5533:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "5536:1:14", + "valueSize": 1 + } + ], + "id": 2860, + "nodeType": "InlineAssembly", + "src": "5435:300:14" + }, + { + "assignments": [ + 2862 + ], + "declarations": [ + { + "constant": false, + "id": 2862, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5939:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2869, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2863, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5954:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2865, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2867, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5954:31:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:14" + }, + { + "AST": { + "nativeSrc": "6008:362:14", + "nodeType": "YulBlock", + "src": "6008:362:14", + "statements": [ + { + "nativeSrc": "6073:37:14", + "nodeType": "YulAssignment", + "src": "6073:37:14", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:14", + "nodeType": "YulIdentifier", + "src": "6092:11:14" + }, + { + "name": "twos", + "nativeSrc": "6105:4:14", + "nodeType": "YulIdentifier", + "src": "6105:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:14", + "nodeType": "YulIdentifier", + "src": "6088:3:14" + }, + "nativeSrc": "6088:22:14", + "nodeType": "YulFunctionCall", + "src": "6088:22:14" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:14", + "nodeType": "YulIdentifier", + "src": "6073:11:14" + } + ] + }, + { + "nativeSrc": "6177:25:14", + "nodeType": "YulAssignment", + "src": "6177:25:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:14", + "nodeType": "YulIdentifier", + "src": "6190:5:14" + }, + { + "name": "twos", + "nativeSrc": "6197:4:14", + "nodeType": "YulIdentifier", + "src": "6197:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:14", + "nodeType": "YulIdentifier", + "src": "6186:3:14" + }, + "nativeSrc": "6186:16:14", + "nodeType": "YulFunctionCall", + "src": "6186:16:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:14", + "nodeType": "YulIdentifier", + "src": "6177:5:14" + } + ] + }, + { + "nativeSrc": "6317:39:14", + "nodeType": "YulAssignment", + "src": "6317:39:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:14", + "nodeType": "YulLiteral", + "src": "6337:1:14", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:14", + "nodeType": "YulIdentifier", + "src": "6340:4:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:14", + "nodeType": "YulIdentifier", + "src": "6333:3:14" + }, + "nativeSrc": "6333:12:14", + "nodeType": "YulFunctionCall", + "src": "6333:12:14" + }, + { + "name": "twos", + "nativeSrc": "6347:4:14", + "nodeType": "YulIdentifier", + "src": "6347:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:14", + "nodeType": "YulIdentifier", + "src": "6329:3:14" + }, + "nativeSrc": "6329:23:14", + "nodeType": "YulFunctionCall", + "src": "6329:23:14" + }, + { + "kind": "number", + "nativeSrc": "6354:1:14", + "nodeType": "YulLiteral", + "src": "6354:1:14", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:14", + "nodeType": "YulIdentifier", + "src": "6325:3:14" + }, + "nativeSrc": "6325:31:14", + "nodeType": "YulFunctionCall", + "src": "6325:31:14" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:14", + "nodeType": "YulIdentifier", + "src": "6317:4:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6073:11:14", + "valueSize": 1 + }, + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6092:11:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6177:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6190:5:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6105:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6197:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6317:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6340:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6347:4:14", + "valueSize": 1 + } + ], + "id": 2870, + "nodeType": "InlineAssembly", + "src": "5999:371:14" + }, + { + "expression": { + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2871, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "6436:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2872, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "6445:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2873, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2862, + "src": "6453:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2876, + "nodeType": "ExpressionStatement", + "src": "6436:21:14" + }, + { + "assignments": [ + 2878 + ], + "declarations": [ + { + "constant": false, + "id": 2878, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "6775:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2885, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2880, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "6798:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2882, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:14" + }, + { + "expression": { + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2886, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7031:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7042:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2888, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7046:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2889, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7060:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7046:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7042:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7031:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2893, + "nodeType": "ExpressionStatement", + "src": "7031:36:14" + }, + { + "expression": { + "id": 2900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2894, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7100:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7111:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2896, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7115:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2897, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7129:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7115:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7111:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7100:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2901, + "nodeType": "ExpressionStatement", + "src": "7100:36:14" + }, + { + "expression": { + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2902, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7170:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2904, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7185:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2905, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7181:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7170:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2909, + "nodeType": "ExpressionStatement", + "src": "7170:36:14" + }, + { + "expression": { + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2910, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7240:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2912, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7255:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2913, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2917, + "nodeType": "ExpressionStatement", + "src": "7240:36:14" + }, + { + "expression": { + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2918, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7310:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2920, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7325:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2921, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7339:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2925, + "nodeType": "ExpressionStatement", + "src": "7310:36:14" + }, + { + "expression": { + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2926, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7381:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2928, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7396:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2929, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7410:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2933, + "nodeType": "ExpressionStatement", + "src": "7381:36:14" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2934, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7851:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2935, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "7860:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2936, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7868:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "7851:24:14" + }, + { + "expression": { + "id": 2940, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7896:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2941, + "nodeType": "Return", + "src": "7889:13:14" + } + ] + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "3485:313:14", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3819:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3819:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "y", + "nameLocation": "3838:1:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3830:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3830:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2825, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "3849:11:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3841:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3818:43:14" + }, + "returnParameters": { + "id": 2829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2828, + "mutability": "mutable", + "name": "result", + "nameLocation": "3893:6:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3885:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3885:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3884:16:14" + }, + "scope": 3610, + "src": "3803:4116:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2986, + "nodeType": "Block", + "src": "8161:192:14", + "statements": [ + { + "assignments": [ + 2960 + ], + "declarations": [ + { + "constant": false, + "id": 2960, + "mutability": "mutable", + "name": "result", + "nameLocation": "8179:6:14", + "nodeType": "VariableDeclaration", + "scope": 2986, + "src": "8171:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2966, + "initialValue": { + "arguments": [ + { + "id": 2962, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "8195:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2963, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2949, + "src": "8198:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2964, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "8201:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2961, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2944, + 2987 + ], + "referencedDeclaration": 2944, + "src": "8188:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8171:42:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2968, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "8244:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 2967, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "8227:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2971, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "8264:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2949, + "src": "8267:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2973, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "8270:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2970, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "8257:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8285:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8257:29:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8227:59:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2983, + "nodeType": "IfStatement", + "src": "8223:101:14", + "trueBody": { + "id": 2982, + "nodeType": "Block", + "src": "8288:36:14", + "statements": [ + { + "expression": { + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2978, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2960, + "src": "8302:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8312:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8302:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2981, + "nodeType": "ExpressionStatement", + "src": "8302:11:14" + } + ] + } + }, + { + "expression": { + "id": 2984, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2960, + "src": "8340:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2958, + "id": 2985, + "nodeType": "Return", + "src": "8333:13:14" + } + ] + }, + "documentation": { + "id": 2945, + "nodeType": "StructuredDocumentation", + "src": "7925:121:14", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 2987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "8060:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2947, + "mutability": "mutable", + "name": "x", + "nameLocation": "8075:1:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8067:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8067:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2949, + "mutability": "mutable", + "name": "y", + "nameLocation": "8086:1:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8078:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8078:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "8097:11:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8089:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2954, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8119:8:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8110:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2953, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2952, + "name": "Rounding", + "nameLocations": [ + "8110:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "8110:8:14" + }, + "referencedDeclaration": 2567, + "src": "8110:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8066:62:14" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8152:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8151:9:14" + }, + "scope": 3610, + "src": "8051:302:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3098, + "nodeType": "Block", + "src": "8644:1585:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2995, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "8658:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8663:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8658:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3001, + "nodeType": "IfStatement", + "src": "8654:45:14", + "trueBody": { + "id": 3000, + "nodeType": "Block", + "src": "8666:33:14", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8687:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2994, + "id": 2999, + "nodeType": "Return", + "src": "8680:8:14" + } + ] + } + }, + { + "assignments": [ + 3003 + ], + "declarations": [ + { + "constant": false, + "id": 3003, + "mutability": "mutable", + "name": "result", + "nameLocation": "9386:6:14", + "nodeType": "VariableDeclaration", + "scope": 3098, + "src": "9378:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9378:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3012, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9395:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3006, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9406:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3005, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3266, + 3301 + ], + "referencedDeclaration": 3266, + "src": "9401:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9401:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9412:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9401:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3010, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9400:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9395:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9378:36:14" + }, + { + "id": 3097, + "nodeType": "UncheckedBlock", + "src": "9815:408:14", + "statements": [ + { + "expression": { + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3013, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9839:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3014, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9849:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3015, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9858:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3016, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9862:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9858:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9849:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3019, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9848:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9873:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9848:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9839:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3023, + "nodeType": "ExpressionStatement", + "src": "9839:35:14" + }, + { + "expression": { + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3024, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9888:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3025, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9898:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3026, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9907:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3027, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9911:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9907:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9898:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3030, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9897:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9922:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9897:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9888:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3034, + "nodeType": "ExpressionStatement", + "src": "9888:35:14" + }, + { + "expression": { + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3035, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9937:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3036, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9947:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3037, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9956:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3038, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9960:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9956:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9947:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3041, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9946:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9971:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9937:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3045, + "nodeType": "ExpressionStatement", + "src": "9937:35:14" + }, + { + "expression": { + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3046, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3047, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9996:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3048, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10005:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3049, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10009:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10005:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9996:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3052, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9995:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10020:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9995:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9986:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3056, + "nodeType": "ExpressionStatement", + "src": "9986:35:14" + }, + { + "expression": { + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3057, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10035:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3058, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10045:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3059, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10054:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3060, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10054:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10045:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3063, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10044:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10069:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10044:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10035:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3067, + "nodeType": "ExpressionStatement", + "src": "10035:35:14" + }, + { + "expression": { + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3068, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10084:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3069, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10094:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3070, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10103:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3071, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10107:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10094:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10093:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10118:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10093:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10084:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3078, + "nodeType": "ExpressionStatement", + "src": "10084:35:14" + }, + { + "expression": { + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3079, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10133:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3080, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10143:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10152:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3082, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10156:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10152:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10143:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3085, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10142:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10142:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10133:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "10133:35:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3091, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10193:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3092, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10201:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3093, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10201:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3090, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "10189:3:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10189:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2994, + "id": 3096, + "nodeType": "Return", + "src": "10182:30:14" + } + ] + } + ] + }, + "documentation": { + "id": 2988, + "nodeType": "StructuredDocumentation", + "src": "8359:223:14", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 3099, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8596:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2990, + "mutability": "mutable", + "name": "a", + "nameLocation": "8609:1:14", + "nodeType": "VariableDeclaration", + "scope": 3099, + "src": "8601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8600:11:14" + }, + "returnParameters": { + "id": 2994, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2993, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3099, + "src": "8635:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2992, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8635:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8634:9:14" + }, + "scope": 3610, + "src": "8587:1642:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3133, + "nodeType": "Block", + "src": "10405:164:14", + "statements": [ + { + "id": 3132, + "nodeType": "UncheckedBlock", + "src": "10415:148:14", + "statements": [ + { + "assignments": [ + 3111 + ], + "declarations": [ + { + "constant": false, + "id": 3111, + "mutability": "mutable", + "name": "result", + "nameLocation": "10447:6:14", + "nodeType": "VariableDeclaration", + "scope": 3132, + "src": "10439:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10439:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3115, + "initialValue": { + "arguments": [ + { + "id": 3113, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "10461:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3099, + 3134 + ], + "referencedDeclaration": 3099, + "src": "10456:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10456:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10439:24:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3116, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "10484:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3118, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "10511:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3117, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "10494:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10494:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3120, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "10524:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3121, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "10533:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3123, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "10542:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10494:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10494:57:14", + "trueExpression": { + "hexValue": "31", + "id": 3126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3129, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10493:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "10484:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3109, + "id": 3131, + "nodeType": "Return", + "src": "10477:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 3100, + "nodeType": "StructuredDocumentation", + "src": "10235:89:14", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 3134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "10338:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3102, + "mutability": "mutable", + "name": "a", + "nameLocation": "10351:1:14", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "10343:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10343:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3105, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10363:8:14", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "10354:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3104, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3103, + "name": "Rounding", + "nameLocations": [ + "10354:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "10354:8:14" + }, + "referencedDeclaration": 2567, + "src": "10354:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10342:30:14" + }, + "returnParameters": { + "id": 3109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3108, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "10396:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10396:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10395:9:14" + }, + "scope": 3610, + "src": "10329:240:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3265, + "nodeType": "Block", + "src": "10760:922:14", + "statements": [ + { + "assignments": [ + 3143 + ], + "declarations": [ + { + "constant": false, + "id": 3143, + "mutability": "mutable", + "name": "result", + "nameLocation": "10778:6:14", + "nodeType": "VariableDeclaration", + "scope": 3265, + "src": "10770:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10770:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3145, + "initialValue": { + "hexValue": "30", + "id": 3144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10787:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10770:18:14" + }, + { + "id": 3262, + "nodeType": "UncheckedBlock", + "src": "10798:855:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3146, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10826:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10835:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10826:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10826:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3160, + "nodeType": "IfStatement", + "src": "10822:99:14", + "trueBody": { + "id": 3159, + "nodeType": "Block", + "src": "10844:77:14", + "statements": [ + { + "expression": { + "id": 3153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10862:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10872:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10862:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3154, + "nodeType": "ExpressionStatement", + "src": "10862:13:14" + }, + { + "expression": { + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3155, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "10893:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10903:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10893:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3158, + "nodeType": "ExpressionStatement", + "src": "10893:13:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3161, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10938:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10947:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10938:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10952:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10938:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3175, + "nodeType": "IfStatement", + "src": "10934:96:14", + "trueBody": { + "id": 3174, + "nodeType": "Block", + "src": "10955:75:14", + "statements": [ + { + "expression": { + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3166, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10973:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10983:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10973:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "10973:12:14" + }, + { + "expression": { + "id": 3172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3170, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11003:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11013:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11003:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3173, + "nodeType": "ExpressionStatement", + "src": "11003:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3176, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11047:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11056:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11047:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11061:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11047:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3190, + "nodeType": "IfStatement", + "src": "11043:96:14", + "trueBody": { + "id": 3189, + "nodeType": "Block", + "src": "11064:75:14", + "statements": [ + { + "expression": { + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3181, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11082:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11092:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11082:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3184, + "nodeType": "ExpressionStatement", + "src": "11082:12:14" + }, + { + "expression": { + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3185, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11112:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11112:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "11112:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3191, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11156:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11165:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11156:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11170:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11156:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3205, + "nodeType": "IfStatement", + "src": "11152:96:14", + "trueBody": { + "id": 3204, + "nodeType": "Block", + "src": "11173:75:14", + "statements": [ + { + "expression": { + "id": 3198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3196, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11191:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11201:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11191:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3199, + "nodeType": "ExpressionStatement", + "src": "11191:12:14" + }, + { + "expression": { + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3200, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11221:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11231:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11221:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3203, + "nodeType": "ExpressionStatement", + "src": "11221:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3206, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11274:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11265:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11265:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3220, + "nodeType": "IfStatement", + "src": "11261:93:14", + "trueBody": { + "id": 3219, + "nodeType": "Block", + "src": "11281:73:14", + "statements": [ + { + "expression": { + "id": 3213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3211, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11299:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11309:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11299:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3214, + "nodeType": "ExpressionStatement", + "src": "11299:11:14" + }, + { + "expression": { + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3215, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11328:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11338:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11328:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3218, + "nodeType": "ExpressionStatement", + "src": "11328:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3221, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11371:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11380:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11371:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11384:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11371:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3235, + "nodeType": "IfStatement", + "src": "11367:93:14", + "trueBody": { + "id": 3234, + "nodeType": "Block", + "src": "11387:73:14", + "statements": [ + { + "expression": { + "id": 3228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3226, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11405:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11415:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11405:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3229, + "nodeType": "ExpressionStatement", + "src": "11405:11:14" + }, + { + "expression": { + "id": 3232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3230, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11434:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11434:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3233, + "nodeType": "ExpressionStatement", + "src": "11434:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3236, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11477:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 3237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11486:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11477:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11477:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3250, + "nodeType": "IfStatement", + "src": "11473:93:14", + "trueBody": { + "id": 3249, + "nodeType": "Block", + "src": "11493:73:14", + "statements": [ + { + "expression": { + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3241, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11511:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 3242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11521:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11511:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3244, + "nodeType": "ExpressionStatement", + "src": "11511:11:14" + }, + { + "expression": { + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3245, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11540:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11540:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3248, + "nodeType": "ExpressionStatement", + "src": "11540:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3251, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11583:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11592:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11583:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11596:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11583:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3261, + "nodeType": "IfStatement", + "src": "11579:64:14", + "trueBody": { + "id": 3260, + "nodeType": "Block", + "src": "11599:44:14", + "statements": [ + { + "expression": { + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3256, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11617:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11627:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11617:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "11617:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3263, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11669:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3141, + "id": 3264, + "nodeType": "Return", + "src": "11662:13:14" + } + ] + }, + "documentation": { + "id": 3135, + "nodeType": "StructuredDocumentation", + "src": "10575:119:14", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 3266, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "10708:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3137, + "mutability": "mutable", + "name": "value", + "nameLocation": "10721:5:14", + "nodeType": "VariableDeclaration", + "scope": 3266, + "src": "10713:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10713:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10712:15:14" + }, + "returnParameters": { + "id": 3141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3140, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3266, + "src": "10751:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10751:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10750:9:14" + }, + "scope": 3610, + "src": "10699:983:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3300, + "nodeType": "Block", + "src": "11915:168:14", + "statements": [ + { + "id": 3299, + "nodeType": "UncheckedBlock", + "src": "11925:152:14", + "statements": [ + { + "assignments": [ + 3278 + ], + "declarations": [ + { + "constant": false, + "id": 3278, + "mutability": "mutable", + "name": "result", + "nameLocation": "11957:6:14", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "11949:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3282, + "initialValue": { + "arguments": [ + { + "id": 3280, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "11971:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3279, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3266, + 3301 + ], + "referencedDeclaration": 3266, + "src": "11966:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11966:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:28:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3283, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "11998:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3285, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3272, + "src": "12025:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3284, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "12008:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12008:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 3288, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "12043:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3290, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "12052:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12008:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12064:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12008:57:14", + "trueExpression": { + "hexValue": "31", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3296, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12007:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11998:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3276, + "id": 3298, + "nodeType": "Return", + "src": "11991:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 3267, + "nodeType": "StructuredDocumentation", + "src": "11688:142:14", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3301, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "11844:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3269, + "mutability": "mutable", + "name": "value", + "nameLocation": "11857:5:14", + "nodeType": "VariableDeclaration", + "scope": 3301, + "src": "11849:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11849:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3272, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11873:8:14", + "nodeType": "VariableDeclaration", + "scope": 3301, + "src": "11864:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3271, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3270, + "name": "Rounding", + "nameLocations": [ + "11864:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "11864:8:14" + }, + "referencedDeclaration": 2567, + "src": "11864:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11848:34:14" + }, + "returnParameters": { + "id": 3276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3275, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3301, + "src": "11906:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11906:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11905:9:14" + }, + "scope": 3610, + "src": "11835:248:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3429, + "nodeType": "Block", + "src": "12276:854:14", + "statements": [ + { + "assignments": [ + 3310 + ], + "declarations": [ + { + "constant": false, + "id": 3310, + "mutability": "mutable", + "name": "result", + "nameLocation": "12294:6:14", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "12286:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12286:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3312, + "initialValue": { + "hexValue": "30", + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12303:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12286:18:14" + }, + { + "id": 3426, + "nodeType": "UncheckedBlock", + "src": "12314:787:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3313, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12342:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12351:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12357:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12351:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12342:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3329, + "nodeType": "IfStatement", + "src": "12338:103:14", + "trueBody": { + "id": 3328, + "nodeType": "Block", + "src": "12361:80:14", + "statements": [ + { + "expression": { + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3318, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12379:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 3321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12388:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12388:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12379:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3323, + "nodeType": "ExpressionStatement", + "src": "12379:17:14" + }, + { + "expression": { + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3324, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12414:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12424:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12414:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3327, + "nodeType": "ExpressionStatement", + "src": "12414:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3330, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12467:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12473:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12467:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12458:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3346, + "nodeType": "IfStatement", + "src": "12454:103:14", + "trueBody": { + "id": 3345, + "nodeType": "Block", + "src": "12477:80:14", + "statements": [ + { + "expression": { + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3335, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12495:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12504:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12504:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12495:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3340, + "nodeType": "ExpressionStatement", + "src": "12495:17:14" + }, + { + "expression": { + "id": 3343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3341, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12530:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12540:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12530:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3344, + "nodeType": "ExpressionStatement", + "src": "12530:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3347, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12574:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12583:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12589:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12583:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12574:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "IfStatement", + "src": "12570:103:14", + "trueBody": { + "id": 3362, + "nodeType": "Block", + "src": "12593:80:14", + "statements": [ + { + "expression": { + "id": 3356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3352, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12611:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12626:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12620:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12611:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3357, + "nodeType": "ExpressionStatement", + "src": "12611:17:14" + }, + { + "expression": { + "id": 3360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3358, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12646:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12656:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12646:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3361, + "nodeType": "ExpressionStatement", + "src": "12646:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3364, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12690:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12699:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12705:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12699:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12690:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3380, + "nodeType": "IfStatement", + "src": "12686:100:14", + "trueBody": { + "id": 3379, + "nodeType": "Block", + "src": "12708:78:14", + "statements": [ + { + "expression": { + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3369, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12726:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12735:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12741:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12735:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12726:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3374, + "nodeType": "ExpressionStatement", + "src": "12726:16:14" + }, + { + "expression": { + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3375, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12760:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12770:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12760:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "12760:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3381, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12803:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12812:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12803:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3397, + "nodeType": "IfStatement", + "src": "12799:100:14", + "trueBody": { + "id": 3396, + "nodeType": "Block", + "src": "12821:78:14", + "statements": [ + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3386, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12839:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12848:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12854:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12848:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12839:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "12839:16:14" + }, + { + "expression": { + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3392, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12873:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12883:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12873:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3395, + "nodeType": "ExpressionStatement", + "src": "12873:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12916:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12925:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12931:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12925:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12916:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3414, + "nodeType": "IfStatement", + "src": "12912:100:14", + "trueBody": { + "id": 3413, + "nodeType": "Block", + "src": "12934:78:14", + "statements": [ + { + "expression": { + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12952:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12961:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12967:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12961:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12952:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3408, + "nodeType": "ExpressionStatement", + "src": "12952:16:14" + }, + { + "expression": { + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3409, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12996:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12986:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3412, + "nodeType": "ExpressionStatement", + "src": "12986:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3415, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "13029:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 3418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13038:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 3417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13038:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "13029:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "13025:66:14", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "13047:44:14", + "statements": [ + { + "expression": { + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3420, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "13065:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3423, + "nodeType": "ExpressionStatement", + "src": "13065:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3427, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "13117:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3308, + "id": 3428, + "nodeType": "Return", + "src": "13110:13:14" + } + ] + }, + "documentation": { + "id": 3302, + "nodeType": "StructuredDocumentation", + "src": "12089:120:14", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 3430, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "12223:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "value", + "nameLocation": "12237:5:14", + "nodeType": "VariableDeclaration", + "scope": 3430, + "src": "12229:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12229:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12228:15:14" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3307, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3430, + "src": "12267:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:9:14" + }, + "scope": 3610, + "src": "12214:916:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3464, + "nodeType": "Block", + "src": "13365:170:14", + "statements": [ + { + "id": 3463, + "nodeType": "UncheckedBlock", + "src": "13375:154:14", + "statements": [ + { + "assignments": [ + 3442 + ], + "declarations": [ + { + "constant": false, + "id": 3442, + "mutability": "mutable", + "name": "result", + "nameLocation": "13407:6:14", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "13399:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13399:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3446, + "initialValue": { + "arguments": [ + { + "id": 3444, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3433, + "src": "13422:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3443, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3430, + 3465 + ], + "referencedDeclaration": 3430, + "src": "13416:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13399:29:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3447, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3442, + "src": "13449:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3449, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "13476:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3448, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "13459:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13459:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13489:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 3452, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3442, + "src": "13495:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3433, + "src": "13504:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13459:50:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13516:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13459:58:14", + "trueExpression": { + "hexValue": "31", + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13512:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3460, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13458:60:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13449:69:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3440, + "id": 3462, + "nodeType": "Return", + "src": "13442:76:14" + } + ] + } + ] + }, + "documentation": { + "id": 3431, + "nodeType": "StructuredDocumentation", + "src": "13136:143:14", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3465, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "13293:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3433, + "mutability": "mutable", + "name": "value", + "nameLocation": "13307:5:14", + "nodeType": "VariableDeclaration", + "scope": 3465, + "src": "13299:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "13323:8:14", + "nodeType": "VariableDeclaration", + "scope": 3465, + "src": "13314:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3435, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3434, + "name": "Rounding", + "nameLocations": [ + "13314:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "13314:8:14" + }, + "referencedDeclaration": 2567, + "src": "13314:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "13298:34:14" + }, + "returnParameters": { + "id": 3440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3439, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3465, + "src": "13356:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13356:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13355:9:14" + }, + "scope": 3610, + "src": "13284:251:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3551, + "nodeType": "Block", + "src": "13855:600:14", + "statements": [ + { + "assignments": [ + 3474 + ], + "declarations": [ + { + "constant": false, + "id": 3474, + "mutability": "mutable", + "name": "result", + "nameLocation": "13873:6:14", + "nodeType": "VariableDeclaration", + "scope": 3551, + "src": "13865:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3476, + "initialValue": { + "hexValue": "30", + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13882:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13865:18:14" + }, + { + "id": 3548, + "nodeType": "UncheckedBlock", + "src": "13893:533:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3477, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "13921:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13921:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13936:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13921:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3491, + "nodeType": "IfStatement", + "src": "13917:98:14", + "trueBody": { + "id": 3490, + "nodeType": "Block", + "src": "13939:76:14", + "statements": [ + { + "expression": { + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3482, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "13957:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13967:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13957:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3485, + "nodeType": "ExpressionStatement", + "src": "13957:13:14" + }, + { + "expression": { + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3486, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "13988:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13988:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3489, + "nodeType": "ExpressionStatement", + "src": "13988:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3492, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14032:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14041:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14032:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14046:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14032:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3506, + "nodeType": "IfStatement", + "src": "14028:95:14", + "trueBody": { + "id": 3505, + "nodeType": "Block", + "src": "14049:74:14", + "statements": [ + { + "expression": { + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3497, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14067:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14077:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14067:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3500, + "nodeType": "ExpressionStatement", + "src": "14067:12:14" + }, + { + "expression": { + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3501, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14097:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14097:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3504, + "nodeType": "ExpressionStatement", + "src": "14097:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14140:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14149:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14140:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14140:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3521, + "nodeType": "IfStatement", + "src": "14136:95:14", + "trueBody": { + "id": 3520, + "nodeType": "Block", + "src": "14157:74:14", + "statements": [ + { + "expression": { + "id": 3514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3512, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14175:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14185:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14175:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3515, + "nodeType": "ExpressionStatement", + "src": "14175:12:14" + }, + { + "expression": { + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3516, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14215:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "14205:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3519, + "nodeType": "ExpressionStatement", + "src": "14205:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3522, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14257:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14248:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14262:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3536, + "nodeType": "IfStatement", + "src": "14244:95:14", + "trueBody": { + "id": 3535, + "nodeType": "Block", + "src": "14265:74:14", + "statements": [ + { + "expression": { + "id": 3529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3527, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14283:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14283:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3530, + "nodeType": "ExpressionStatement", + "src": "14283:12:14" + }, + { + "expression": { + "id": 3533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3531, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14313:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14323:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14313:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3534, + "nodeType": "ExpressionStatement", + "src": "14313:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14356:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14356:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14356:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3547, + "nodeType": "IfStatement", + "src": "14352:64:14", + "trueBody": { + "id": 3546, + "nodeType": "Block", + "src": "14372:44:14", + "statements": [ + { + "expression": { + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3542, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14390:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14400:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14390:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "14390:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3549, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14442:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3472, + "id": 3550, + "nodeType": "Return", + "src": "14435:13:14" + } + ] + }, + "documentation": { + "id": 3466, + "nodeType": "StructuredDocumentation", + "src": "13541:246:14", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 3552, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "13801:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3468, + "mutability": "mutable", + "name": "value", + "nameLocation": "13816:5:14", + "nodeType": "VariableDeclaration", + "scope": 3552, + "src": "13808:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13808:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13807:15:14" + }, + "returnParameters": { + "id": 3472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3471, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3552, + "src": "13846:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13846:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13845:9:14" + }, + "scope": 3610, + "src": "13792:663:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3589, + "nodeType": "Block", + "src": "14692:177:14", + "statements": [ + { + "id": 3588, + "nodeType": "UncheckedBlock", + "src": "14702:161:14", + "statements": [ + { + "assignments": [ + 3564 + ], + "declarations": [ + { + "constant": false, + "id": 3564, + "mutability": "mutable", + "name": "result", + "nameLocation": "14734:6:14", + "nodeType": "VariableDeclaration", + "scope": 3588, + "src": "14726:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14726:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3568, + "initialValue": { + "arguments": [ + { + "id": 3566, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3555, + "src": "14750:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3565, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3552, + 3590 + ], + "referencedDeclaration": 3552, + "src": "14743:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14726:30:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3569, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3564, + "src": "14777:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3571, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3558, + "src": "14804:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3570, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "14787:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14817:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3574, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3564, + "src": "14823:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 3575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14833:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "14823:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3577, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14822:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3579, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3555, + "src": "14838:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14787:56:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14850:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14787:64:14", + "trueExpression": { + "hexValue": "31", + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14846:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3585, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14786:66:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14777:75:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3562, + "id": 3587, + "nodeType": "Return", + "src": "14770:82:14" + } + ] + } + ] + }, + "documentation": { + "id": 3553, + "nodeType": "StructuredDocumentation", + "src": "14461:144:14", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "14619:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "mutability": "mutable", + "name": "value", + "nameLocation": "14634:5:14", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "14626:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14626:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3558, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "14650:8:14", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "14641:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3557, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3556, + "name": "Rounding", + "nameLocations": [ + "14641:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "14641:8:14" + }, + "referencedDeclaration": 2567, + "src": "14641:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "14625:34:14" + }, + "returnParameters": { + "id": 3562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3561, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "14683:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14683:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14682:9:14" + }, + "scope": 3610, + "src": "14610:259:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3608, + "nodeType": "Block", + "src": "15067:48:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 3606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 3604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3601, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "15090:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15084:5:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 3599, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15084:5:14", + "typeDescriptions": {} + } + }, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15084:15:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 3603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15102:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15084:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15084:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3598, + "id": 3607, + "nodeType": "Return", + "src": "15077:31:14" + } + ] + }, + "documentation": { + "id": 3591, + "nodeType": "StructuredDocumentation", + "src": "14875:113:14", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 3609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "15002:16:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3594, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "15028:8:14", + "nodeType": "VariableDeclaration", + "scope": 3609, + "src": "15019:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3592, + "name": "Rounding", + "nameLocations": [ + "15019:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "15019:8:14" + }, + "referencedDeclaration": 2567, + "src": "15019:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "15018:19:14" + }, + "returnParameters": { + "id": 3598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3597, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3609, + "src": "15061:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3596, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15061:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15060:6:14" + }, + "scope": 3610, + "src": "14993:122:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3611, + "src": "203:14914:14", + "usedErrors": [ + 2562 + ], + "usedEvents": [] + } + ], + "src": "103:15015:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 3715 + ] + }, + "id": 3716, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3612, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3613, + "nodeType": "StructuredDocumentation", + "src": "135:80:15", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3715, + "linearizedBaseContracts": [ + 3715 + ], + "name": "SignedMath", + "nameLocation": "224:10:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3630, + "nodeType": "Block", + "src": "376:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3623, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3616, + "src": "393:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3624, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "397:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "393:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3627, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "405:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "393:13:15", + "trueExpression": { + "id": 3626, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3616, + "src": "401:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3622, + "id": 3629, + "nodeType": "Return", + "src": "386:20:15" + } + ] + }, + "documentation": { + "id": 3614, + "nodeType": "StructuredDocumentation", + "src": "241:66:15", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 3631, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "321:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3616, + "mutability": "mutable", + "name": "a", + "nameLocation": "332:1:15", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "325:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3615, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "325:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3618, + "mutability": "mutable", + "name": "b", + "nameLocation": "342:1:15", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "335:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3617, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "335:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "324:20:15" + }, + "returnParameters": { + "id": 3622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3621, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "368:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3620, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "368:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "367:8:15" + }, + "scope": 3715, + "src": "312:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3648, + "nodeType": "Block", + "src": "555:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3641, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3634, + "src": "572:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3642, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3636, + "src": "576:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "572:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3645, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3636, + "src": "584:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "572:13:15", + "trueExpression": { + "id": 3644, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3634, + "src": "580:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3640, + "id": 3647, + "nodeType": "Return", + "src": "565:20:15" + } + ] + }, + "documentation": { + "id": 3632, + "nodeType": "StructuredDocumentation", + "src": "419:67:15", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 3649, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "500:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3634, + "mutability": "mutable", + "name": "a", + "nameLocation": "511:1:15", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "504:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3633, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "504:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3636, + "mutability": "mutable", + "name": "b", + "nameLocation": "521:1:15", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "514:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3635, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "514:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "503:20:15" + }, + "returnParameters": { + "id": 3640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3639, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "547:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3638, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "547:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "546:8:15" + }, + "scope": 3715, + "src": "491:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3692, + "nodeType": "Block", + "src": "797:162:15", + "statements": [ + { + "assignments": [ + 3660 + ], + "declarations": [ + { + "constant": false, + "id": 3660, + "mutability": "mutable", + "name": "x", + "nameLocation": "866:1:15", + "nodeType": "VariableDeclaration", + "scope": 3692, + "src": "859:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3659, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "859:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 3673, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3661, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "871:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 3662, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3654, + "src": "875:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "871:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3664, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "870:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3665, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "882:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3666, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3654, + "src": "886:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "882:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3668, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "881:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "892:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "881:12:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3671, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:14:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:24:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "859:35:15" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3674, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3660, + "src": "911:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3679, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3660, + "src": "931:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "923:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:15", + "typeDescriptions": {} + } + }, + "id": 3680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "923:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 3681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "937:3:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "923:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "916:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 3675, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "916:6:15", + "typeDescriptions": {} + } + }, + "id": 3683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3684, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "945:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3685, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3654, + "src": "949:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "945:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3687, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "944:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "916:35:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3689, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "915:37:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "911:41:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3658, + "id": 3691, + "nodeType": "Return", + "src": "904:48:15" + } + ] + }, + "documentation": { + "id": 3650, + "nodeType": "StructuredDocumentation", + "src": "598:126:15", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 3693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "738:7:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3652, + "mutability": "mutable", + "name": "a", + "nameLocation": "753:1:15", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "746:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3651, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "746:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3654, + "mutability": "mutable", + "name": "b", + "nameLocation": "763:1:15", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "756:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3653, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "756:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "745:20:15" + }, + "returnParameters": { + "id": 3658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3657, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "789:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3656, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "789:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "788:8:15" + }, + "scope": 3715, + "src": "729:230:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3713, + "nodeType": "Block", + "src": "1103:158:15", + "statements": [ + { + "id": 3712, + "nodeType": "UncheckedBlock", + "src": "1113:142:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3703, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "1228:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1228:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1241:2:15", + "subExpression": { + "id": 3707, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "1242:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1228:15:15", + "trueExpression": { + "id": 3706, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "1237:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1220:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1220:7:15", + "typeDescriptions": {} + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1220:24:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3700, + "id": 3711, + "nodeType": "Return", + "src": "1213:31:15" + } + ] + } + ] + }, + "documentation": { + "id": 3694, + "nodeType": "StructuredDocumentation", + "src": "965:78:15", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 3714, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1057:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3696, + "mutability": "mutable", + "name": "n", + "nameLocation": "1068:1:15", + "nodeType": "VariableDeclaration", + "scope": 3714, + "src": "1061:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3695, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:10:15" + }, + "returnParameters": { + "id": 3700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3699, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3714, + "src": "1094:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:9:15" + }, + "scope": 3715, + "src": "1048:213:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3716, + "src": "216:1047:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:1155:15" + }, + "id": 15 + }, + "contracts/Engagement.sol": { + "ast": { + "absolutePath": "contracts/Engagement.sol", + "exportedSymbols": { + "AccessControl": [ + 295 + ], + "Arrays": [ + 1930 + ], + "Context": [ + 1960 + ], + "ERC1155": [ + 1566 + ], + "ERC165": [ + 2349 + ], + "ERC165Checker": [ + 2544 + ], + "Engagement": [ + 4007 + ], + "IAccessControl": [ + 378 + ], + "IERC1155": [ + 1689 + ], + "IERC1155Errors": [ + 515 + ], + "IERC1155MetadataURI": [ + 1747 + ], + "IERC1155Receiver": [ + 1731 + ], + "IERC165": [ + 2556 + ], + "IEngagement": [ + 4091 + ], + "Math": [ + 3610 + ], + "SignedMath": [ + 3715 + ], + "Strings": [ + 2325 + ] + }, + "id": 4008, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3717, + "literals": [ + "solidity", + "0.8", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "39:23:16" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", + "file": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", + "id": 3718, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4008, + "sourceUnit": 1567, + "src": "64:59:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "@openzeppelin/contracts/access/AccessControl.sol", + "id": 3719, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4008, + "sourceUnit": 296, + "src": "124:58:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3720, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4008, + "sourceUnit": 2326, + "src": "183:51:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "file": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "id": 3721, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4008, + "sourceUnit": 2545, + "src": "235:71:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/IEngagement.sol", + "file": "./IEngagement.sol", + "id": 3722, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4008, + "sourceUnit": 4092, + "src": "307:27:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3723, + "name": "IEngagement", + "nameLocations": [ + "359:11:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4091, + "src": "359:11:16" + }, + "id": 3724, + "nodeType": "InheritanceSpecifier", + "src": "359:11:16" + }, + { + "baseName": { + "id": 3725, + "name": "ERC1155", + "nameLocations": [ + "372:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "372:7:16" + }, + "id": 3726, + "nodeType": "InheritanceSpecifier", + "src": "372:7:16" + }, + { + "baseName": { + "id": 3727, + "name": "AccessControl", + "nameLocations": [ + "381:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 295, + "src": "381:13:16" + }, + "id": 3728, + "nodeType": "InheritanceSpecifier", + "src": "381:13:16" + } + ], + "canonicalName": "Engagement", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4007, + "linearizedBaseContracts": [ + 4007, + 295, + 1566, + 515, + 1747, + 1689, + 2349, + 2556, + 378, + 1960, + 4091 + ], + "name": "Engagement", + "nameLocation": "345:10:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 3731, + "libraryName": { + "id": 3729, + "name": "ERC165Checker", + "nameLocations": [ + "407:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2544, + "src": "407:13:16" + }, + "nodeType": "UsingForDirective", + "src": "401:32:16", + "typeName": { + "id": 3730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "425:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "_counter", + "nameLocation": "452:8:16", + "nodeType": "VariableDeclaration", + "scope": 4007, + "src": "439:21:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "439:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3735, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "481:9:16", + "nodeType": "VariableDeclaration", + "scope": 4007, + "src": "466:24:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3734, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "466:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 3757, + "nodeType": "Block", + "src": "546:129:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3744, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "575:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3743, + "name": "requireNonEmptyURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3792, + "src": "556:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "556:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3746, + "nodeType": "ExpressionStatement", + "src": "556:29:16" + }, + { + "expression": { + "arguments": [ + { + "id": 3748, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "606:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 3749, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "626:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "630:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "626:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3747, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "595:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 3751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "595:42:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3752, + "nodeType": "ExpressionStatement", + "src": "595:42:16" + }, + { + "expression": { + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3753, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "647:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3754, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "659:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "647:21:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "647:21:16" + } + ] + }, + "id": 3758, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "", + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "542:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "id": 3741, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3739, + "name": "ERC1155", + "nameLocations": [ + "534:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "534:7:16" + }, + "nodeType": "ModifierInvocation", + "src": "534:11:16" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3737, + "mutability": "mutable", + "name": "tokenURI_", + "nameLocation": "523:9:16", + "nodeType": "VariableDeclaration", + "scope": 3758, + "src": "509:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3736, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "509:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "508:25:16" + }, + "returnParameters": { + "id": 3742, + "nodeType": "ParameterList", + "parameters": [], + "src": "546:0:16" + }, + "scope": 4007, + "src": "497:178:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3772, + "nodeType": "Block", + "src": "731:90:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3763, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3760, + "src": "745:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 3764, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "756:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "745:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3771, + "nodeType": "IfStatement", + "src": "741:74:16", + "trueBody": { + "id": 3770, + "nodeType": "Block", + "src": "766:49:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3767, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3760, + "src": "796:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3766, + "name": "NotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4041, + "src": "787:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "787:17:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3769, + "nodeType": "RevertStatement", + "src": "780:24:16" + } + ] + } + } + ] + }, + "id": 3773, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkTokenId", + "nameLocation": "690:13:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3760, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "709:7:16", + "nodeType": "VariableDeclaration", + "scope": 3773, + "src": "704:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3759, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "704:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "703:14:16" + }, + "returnParameters": { + "id": 3762, + "nodeType": "ParameterList", + "parameters": [], + "src": "731:0:16" + }, + "scope": 4007, + "src": "681:140:16", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "891:110:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3780, + "name": "newUri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "911:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "905:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3778, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "905:5:16", + "typeDescriptions": {} + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "905:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "919:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "905:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "929:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "905:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3790, + "nodeType": "IfStatement", + "src": "901:94:16", + "trueBody": { + "id": 3789, + "nodeType": "Block", + "src": "932:63:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:21:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + }, + "value": "URI cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + } + ], + "id": 3785, + "name": "URIEmpty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4057, + "src": "953:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "953:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3788, + "nodeType": "RevertStatement", + "src": "946:38:16" + } + ] + } + } + ] + }, + "id": 3792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "requireNonEmptyURI", + "nameLocation": "836:18:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3775, + "mutability": "mutable", + "name": "newUri", + "nameLocation": "869:6:16", + "nodeType": "VariableDeclaration", + "scope": 3792, + "src": "855:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "855:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "854:22:16" + }, + "returnParameters": { + "id": 3777, + "nodeType": "ParameterList", + "parameters": [], + "src": "891:0:16" + }, + "scope": 4007, + "src": "827:174:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3801, + "nodeType": "Block", + "src": "1043:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3797, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "1067:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3796, + "name": "_checkTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "1053:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1053:22:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3799, + "nodeType": "ExpressionStatement", + "src": "1053:22:16" + }, + { + "id": 3800, + "nodeType": "PlaceholderStatement", + "src": "1085:1:16" + } + ] + }, + "id": 3802, + "name": "validTokenId", + "nameLocation": "1016:12:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1034:7:16", + "nodeType": "VariableDeclaration", + "scope": 3802, + "src": "1029:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1029:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1028:14:16" + }, + "src": "1007:86:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3820, + "nodeType": "Block", + "src": "1154:114:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3808, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1168:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 3809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1179:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1183:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1179:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3818, + "nodeType": "IfStatement", + "src": "1164:87:16", + "trueBody": { + "id": 3817, + "nodeType": "Block", + "src": "1191:60:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3813, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1223:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3814, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3806, + "src": "1232:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3812, + "name": "NotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1212:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1212:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3816, + "nodeType": "RevertStatement", + "src": "1205:35:16" + } + ] + } + }, + { + "id": 3819, + "nodeType": "PlaceholderStatement", + "src": "1260:1:16" + } + ] + }, + "id": 3821, + "name": "onlyTokenOwner", + "nameLocation": "1108:14:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3804, + "mutability": "mutable", + "name": "account", + "nameLocation": "1131:7:16", + "nodeType": "VariableDeclaration", + "scope": 3821, + "src": "1123:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1145:7:16", + "nodeType": "VariableDeclaration", + "scope": 3821, + "src": "1140:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1140:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1122:31:16" + }, + "src": "1099:169:16", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 4062 + ], + "body": { + "id": 3828, + "nodeType": "Block", + "src": "1322:32:16", + "statements": [ + { + "expression": { + "id": 3826, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1339:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3825, + "id": 3827, + "nodeType": "Return", + "src": "1332:15:16" + } + ] + }, + "functionSelector": "61bc221a", + "id": 3829, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "counter", + "nameLocation": "1283:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3822, + "nodeType": "ParameterList", + "parameters": [], + "src": "1290:2:16" + }, + "returnParameters": { + "id": 3825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3824, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3829, + "src": "1316:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3823, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1316:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1315:6:16" + }, + "scope": 4007, + "src": "1274:80:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4065 + ], + "body": { + "id": 3856, + "nodeType": "Block", + "src": "1386:176:16", + "statements": [ + { + "assignments": [ + 3833 + ], + "declarations": [ + { + "constant": false, + "id": 3833, + "mutability": "mutable", + "name": "counterCache", + "nameLocation": "1401:12:16", + "nodeType": "VariableDeclaration", + "scope": 3856, + "src": "1396:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3832, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1396:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3835, + "initialValue": { + "id": 3834, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1416:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1396:28:16" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3837, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1440:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1444:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1440:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3839, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3833, + "src": "1452:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1466:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "hexValue": "", + "id": 3841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1469:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3836, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "1434:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 3842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1434:38:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3843, + "nodeType": "ExpressionStatement", + "src": "1434:38:16" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 3845, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1493:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1497:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1493:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3847, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3833, + "src": "1505:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3844, + "name": "Issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4015, + "src": "1487:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1487:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3849, + "nodeType": "EmitStatement", + "src": "1482:36:16" + }, + { + "expression": { + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3850, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1528:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3851, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3833, + "src": "1539:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1554:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1539:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1528:27:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3855, + "nodeType": "ExpressionStatement", + "src": "1528:27:16" + } + ] + }, + "functionSelector": "d383f646", + "id": 3857, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "issue", + "nameLocation": "1369:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3830, + "nodeType": "ParameterList", + "parameters": [], + "src": "1374:2:16" + }, + "returnParameters": { + "id": 3831, + "nodeType": "ParameterList", + "parameters": [], + "src": "1386:0:16" + }, + "scope": 4007, + "src": "1360:202:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4076 + ], + "body": { + "id": 3898, + "nodeType": "Block", + "src": "1723:195:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3873, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1747:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3874, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1756:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3872, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "1737:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 3875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1737:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31", + "id": 3876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1768:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1737:32:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3884, + "nodeType": "IfStatement", + "src": "1733:97:16", + "trueBody": { + "id": 3883, + "nodeType": "Block", + "src": "1771:59:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3879, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1802:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3880, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1811:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3878, + "name": "MintLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4047, + "src": "1792:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 3881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1792:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3882, + "nodeType": "RevertStatement", + "src": "1785:34:16" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3886, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1845:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3887, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1854:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1863:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "id": 3889, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3865, + "src": "1866:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3885, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "1839:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1839:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3891, + "nodeType": "ExpressionStatement", + "src": "1839:32:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3893, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1891:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3894, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1900:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1909:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 3892, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "1886:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1886:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3897, + "nodeType": "EmitStatement", + "src": "1881:30:16" + } + ] + }, + "functionSelector": "731133e9", + "id": 3899, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3869, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "1714:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3870, + "kind": "modifierInvocation", + "modifierName": { + "id": 3868, + "name": "validTokenId", + "nameLocations": [ + "1701:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "1701:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "1701:21:16" + } + ], + "name": "mint", + "nameLocation": "1577:4:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3867, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1692:8:16" + }, + "parameters": { + "id": 3866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3859, + "mutability": "mutable", + "name": "account", + "nameLocation": "1599:7:16", + "nodeType": "VariableDeclaration", + "scope": 3899, + "src": "1591:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1591:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3861, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1621:7:16", + "nodeType": "VariableDeclaration", + "scope": 3899, + "src": "1616:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3860, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1616:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3863, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1643:6:16", + "nodeType": "VariableDeclaration", + "scope": 3899, + "src": "1638:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3862, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1638:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3865, + "mutability": "mutable", + "name": "data", + "nameLocation": "1672:4:16", + "nodeType": "VariableDeclaration", + "scope": 3899, + "src": "1659:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3864, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1659:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1581:101:16" + }, + "returnParameters": { + "id": 3871, + "nodeType": "ParameterList", + "parameters": [], + "src": "1723:0:16" + }, + "scope": 4007, + "src": "1568:350:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4085 + ], + "body": { + "id": 3928, + "nodeType": "Block", + "src": "2085:83:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3917, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3901, + "src": "2101:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3918, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3903, + "src": "2110:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2119:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 3916, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "2095:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2095:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3921, + "nodeType": "ExpressionStatement", + "src": "2095:26:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3923, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3901, + "src": "2141:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3924, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3903, + "src": "2150:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2159:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 3922, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "2136:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2136:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3927, + "nodeType": "EmitStatement", + "src": "2131:30:16" + } + ] + }, + "functionSelector": "f5298aca", + "id": 3929, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3909, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3903, + "src": "2043:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3910, + "kind": "modifierInvocation", + "modifierName": { + "id": 3908, + "name": "validTokenId", + "nameLocations": [ + "2030:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2030:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2030:21:16" + }, + { + "arguments": [ + { + "id": 3912, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3901, + "src": "2067:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3913, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3903, + "src": "2076:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3914, + "kind": "modifierInvocation", + "modifierName": { + "id": 3911, + "name": "onlyTokenOwner", + "nameLocations": [ + "2052:14:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3821, + "src": "2052:14:16" + }, + "nodeType": "ModifierInvocation", + "src": "2052:32:16" + } + ], + "name": "burn", + "nameLocation": "1933:4:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3907, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2021:8:16" + }, + "parameters": { + "id": 3906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3901, + "mutability": "mutable", + "name": "account", + "nameLocation": "1955:7:16", + "nodeType": "VariableDeclaration", + "scope": 3929, + "src": "1947:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1947:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3903, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1977:7:16", + "nodeType": "VariableDeclaration", + "scope": 3929, + "src": "1972:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3902, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1972:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3905, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1999:6:16", + "nodeType": "VariableDeclaration", + "scope": 3929, + "src": "1994:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3904, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1994:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1937:74:16" + }, + "returnParameters": { + "id": 3915, + "nodeType": "ParameterList", + "parameters": [], + "src": "2085:0:16" + }, + "scope": 4007, + "src": "1924:244:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 62, + 607 + ], + "body": { + "id": 3954, + "nodeType": "Block", + "src": "2295:142:16", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 3941, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2317:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Engagement_$4007", + "typeString": "contract Engagement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Engagement_$4007", + "typeString": "contract Engagement" + } + ], + "id": 3940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2309:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3939, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2309:7:16", + "typeDescriptions": {} + } + }, + "id": 3942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2309:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2323:14:16", + "memberName": "supportsERC165", + "nodeType": "MemberAccess", + "referencedDeclaration": 2380, + "src": "2309:28:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2309:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3951, + "nodeType": "IfStatement", + "src": "2305:104:16", + "trueBody": { + "id": 3950, + "nodeType": "Block", + "src": "2341:68:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3947, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3931, + "src": "2386:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3945, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2362:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Engagement_$4007_$", + "typeString": "type(contract super Engagement)" + } + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2368:17:16", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "2362:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2362:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3938, + "id": 3949, + "nodeType": "Return", + "src": "2355:43:16" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 3952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2425:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3938, + "id": 3953, + "nodeType": "Return", + "src": "2418:12:16" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 3955, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2183:17:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3935, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3933, + "name": "AccessControl", + "nameLocations": [ + "2256:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 295, + "src": "2256:13:16" + }, + { + "id": 3934, + "name": "ERC1155", + "nameLocations": [ + "2271:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "2271:7:16" + } + ], + "src": "2247:32:16" + }, + "parameters": { + "id": 3932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3931, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2217:11:16", + "nodeType": "VariableDeclaration", + "scope": 3955, + "src": "2210:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3930, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2210:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2200:34:16" + }, + "returnParameters": { + "id": 3938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3937, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3955, + "src": "2289:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3936, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2289:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2288:6:16" + }, + "scope": 4007, + "src": "2174:263:16", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4090 + ], + "body": { + "id": 3976, + "nodeType": "Block", + "src": "2526:119:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3964, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3957, + "src": "2555:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3963, + "name": "requireNonEmptyURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3792, + "src": "2536:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2536:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3966, + "nodeType": "ExpressionStatement", + "src": "2536:26:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3968, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2592:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "id": 3969, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3957, + "src": "2603:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3967, + "name": "BaseURIUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "2577:14:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 3970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2577:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3971, + "nodeType": "EmitStatement", + "src": "2572:38:16" + }, + { + "expression": { + "id": 3974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3972, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2620:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3973, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3957, + "src": "2632:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2620:18:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3975, + "nodeType": "ExpressionStatement", + "src": "2620:18:16" + } + ] + }, + "functionSelector": "931688cb", + "id": 3977, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3960, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "2506:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 3961, + "kind": "modifierInvocation", + "modifierName": { + "id": 3959, + "name": "onlyRole", + "nameLocations": [ + "2497:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "2497:8:16" + }, + "nodeType": "ModifierInvocation", + "src": "2497:28:16" + } + ], + "name": "updateBaseURI", + "nameLocation": "2452:13:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3957, + "mutability": "mutable", + "name": "newURI", + "nameLocation": "2480:6:16", + "nodeType": "VariableDeclaration", + "scope": 3977, + "src": "2466:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3956, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2466:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2465:22:16" + }, + "returnParameters": { + "id": 3962, + "nodeType": "ParameterList", + "parameters": [], + "src": "2526:0:16" + }, + "scope": 4007, + "src": "2443:202:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4005, + "nodeType": "Block", + "src": "2781:174:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3993, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2851:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "id": 3994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2861:14:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" + }, + "value": "/api/v1/nft/" + }, + { + "arguments": [ + { + "id": 3997, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "2893:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3995, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2325, + "src": "2876:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$2325_$", + "typeString": "type(library Strings)" + } + }, + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2884:8:16", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2138, + "src": "2876:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2876:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2f", + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2902:3:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + "value": "/" + }, + { + "id": 4000, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3981, + "src": "2906:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2f72657075746174696f6e2d73636f7265", + "id": 4001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2914:19:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" + }, + "value": "/reputation-score" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" + } + ], + "expression": { + "id": 3991, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2834:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2838:12:16", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2834:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 4002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2834:100:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2810:6:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3989, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2810:6:16", + "typeDescriptions": {} + } + }, + "id": 4003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2810:138:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3988, + "id": 4004, + "nodeType": "Return", + "src": "2791:157:16" + } + ] + }, + "functionSelector": "76b676f1", + "id": 4006, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3984, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3979, + "src": "2748:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3985, + "kind": "modifierInvocation", + "modifierName": { + "id": 3983, + "name": "validTokenId", + "nameLocations": [ + "2735:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2735:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2735:21:16" + } + ], + "name": "uri", + "nameLocation": "2660:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3979, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2678:7:16", + "nodeType": "VariableDeclaration", + "scope": 4006, + "src": "2673:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3978, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2673:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3981, + "mutability": "mutable", + "name": "account", + "nameLocation": "2709:7:16", + "nodeType": "VariableDeclaration", + "scope": 4006, + "src": "2695:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3980, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2695:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2663:59:16" + }, + "returnParameters": { + "id": 3988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3987, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4006, + "src": "2766:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3986, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2766:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2765:15:16" + }, + "scope": 4007, + "src": "2651:304:16", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 4008, + "src": "336:2621:16", + "usedErrors": [ + 305, + 308, + 480, + 485, + 490, + 497, + 502, + 507, + 514, + 4041, + 4047, + 4053, + 4057 + ], + "usedEvents": [ + 317, + 326, + 335, + 1586, + 1601, + 1610, + 1617, + 4015, + 4023, + 4031, + 4037 + ] + } + ], + "src": "39:2919:16" + }, + "id": 16 + }, + "contracts/IEngagement.sol": { + "ast": { + "absolutePath": "contracts/IEngagement.sol", + "exportedSymbols": { + "IEngagement": [ + 4091 + ] + }, + "id": 4092, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4009, + "literals": [ + "solidity", + "0.8", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "39:23:17" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IEngagement", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 4091, + "linearizedBaseContracts": [ + 4091 + ], + "name": "IEngagement", + "nameLocation": "74:11:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "c65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16", + "id": 4015, + "name": "Issue", + "nameLocation": "98:5:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4011, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "120:7:17", + "nodeType": "VariableDeclaration", + "scope": 4015, + "src": "104:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "104:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4013, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "142:7:17", + "nodeType": "VariableDeclaration", + "scope": 4015, + "src": "129:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4012, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "129:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "103:47:17" + }, + "src": "92:59:17" + }, + { + "anonymous": false, + "eventSelector": "4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f", + "id": 4023, + "name": "Mint", + "nameLocation": "162:4:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4017, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "183:7:17", + "nodeType": "VariableDeclaration", + "scope": 4023, + "src": "167:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "167:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4019, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "205:7:17", + "nodeType": "VariableDeclaration", + "scope": 4023, + "src": "192:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4018, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "192:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4021, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "219:6:17", + "nodeType": "VariableDeclaration", + "scope": 4023, + "src": "214:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4020, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "214:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "166:60:17" + }, + "src": "156:71:17" + }, + { + "anonymous": false, + "eventSelector": "49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a", + "id": 4031, + "name": "Burn", + "nameLocation": "238:4:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4025, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "259:7:17", + "nodeType": "VariableDeclaration", + "scope": 4031, + "src": "243:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "243:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4027, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "281:7:17", + "nodeType": "VariableDeclaration", + "scope": 4031, + "src": "268:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4026, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "268:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4029, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "295:6:17", + "nodeType": "VariableDeclaration", + "scope": 4031, + "src": "290:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4028, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "290:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "242:60:17" + }, + "src": "232:71:17" + }, + { + "anonymous": false, + "eventSelector": "309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc1", + "id": 4037, + "name": "BaseURIUpdated", + "nameLocation": "314:14:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4033, + "indexed": false, + "mutability": "mutable", + "name": "oldURI", + "nameLocation": "336:6:17", + "nodeType": "VariableDeclaration", + "scope": 4037, + "src": "329:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4032, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "329:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4035, + "indexed": false, + "mutability": "mutable", + "name": "newURI", + "nameLocation": "351:6:17", + "nodeType": "VariableDeclaration", + "scope": 4037, + "src": "344:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4034, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "344:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "328:30:17" + }, + "src": "308:51:17" + }, + { + "errorSelector": "c80a970c", + "id": 4041, + "name": "NotFound", + "nameLocation": "371:8:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4039, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "385:7:17", + "nodeType": "VariableDeclaration", + "scope": 4041, + "src": "380:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4038, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "380:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:14:17" + }, + "src": "365:29:17" + }, + { + "errorSelector": "788d2556", + "id": 4047, + "name": "MintLimit", + "nameLocation": "405:9:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4043, + "mutability": "mutable", + "name": "account", + "nameLocation": "423:7:17", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "415:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "415:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4045, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "437:7:17", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "432:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4044, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "432:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "414:31:17" + }, + "src": "399:47:17" + }, + { + "errorSelector": "8626cc03", + "id": 4053, + "name": "NotAllowed", + "nameLocation": "457:10:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4049, + "mutability": "mutable", + "name": "account", + "nameLocation": "476:7:17", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "468:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "490:7:17", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "485:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4050, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "485:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "467:31:17" + }, + "src": "451:48:17" + }, + { + "errorSelector": "1897cf66", + "id": 4057, + "name": "URIEmpty", + "nameLocation": "510:8:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4055, + "mutability": "mutable", + "name": "message", + "nameLocation": "526:7:17", + "nodeType": "VariableDeclaration", + "scope": 4057, + "src": "519:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4054, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "519:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "518:16:17" + }, + "src": "504:31:17" + }, + { + "functionSelector": "61bc221a", + "id": 4062, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "counter", + "nameLocation": "550:7:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4058, + "nodeType": "ParameterList", + "parameters": [], + "src": "557:2:17" + }, + "returnParameters": { + "id": 4061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4060, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4062, + "src": "583:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4059, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "583:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "582:6:17" + }, + "scope": 4091, + "src": "541:48:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d383f646", + "id": 4065, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "issue", + "nameLocation": "604:5:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4063, + "nodeType": "ParameterList", + "parameters": [], + "src": "609:2:17" + }, + "returnParameters": { + "id": 4064, + "nodeType": "ParameterList", + "parameters": [], + "src": "620:0:17" + }, + "scope": 4091, + "src": "595:26:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "731133e9", + "id": 4076, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "636:4:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4067, + "mutability": "mutable", + "name": "account", + "nameLocation": "658:7:17", + "nodeType": "VariableDeclaration", + "scope": 4076, + "src": "650:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4066, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "650:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4069, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "680:7:17", + "nodeType": "VariableDeclaration", + "scope": 4076, + "src": "675:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4068, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "675:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4071, + "mutability": "mutable", + "name": "amount", + "nameLocation": "702:6:17", + "nodeType": "VariableDeclaration", + "scope": 4076, + "src": "697:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4070, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "697:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4073, + "mutability": "mutable", + "name": "data", + "nameLocation": "731:4:17", + "nodeType": "VariableDeclaration", + "scope": 4076, + "src": "718:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4072, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "718:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "640:101:17" + }, + "returnParameters": { + "id": 4075, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:0:17" + }, + "scope": 4091, + "src": "627:124:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f5298aca", + "id": 4085, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "766:4:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4078, + "mutability": "mutable", + "name": "account", + "nameLocation": "779:7:17", + "nodeType": "VariableDeclaration", + "scope": 4085, + "src": "771:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "771:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4080, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "793:7:17", + "nodeType": "VariableDeclaration", + "scope": 4085, + "src": "788:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4079, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "788:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4082, + "mutability": "mutable", + "name": "amount", + "nameLocation": "807:6:17", + "nodeType": "VariableDeclaration", + "scope": 4085, + "src": "802:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4081, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "802:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "770:44:17" + }, + "returnParameters": { + "id": 4084, + "nodeType": "ParameterList", + "parameters": [], + "src": "823:0:17" + }, + "scope": 4091, + "src": "757:67:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "931688cb", + "id": 4090, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateBaseURI", + "nameLocation": "839:13:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4087, + "mutability": "mutable", + "name": "newURI", + "nameLocation": "867:6:17", + "nodeType": "VariableDeclaration", + "scope": 4090, + "src": "853:20:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4086, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "853:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "852:22:17" + }, + "returnParameters": { + "id": 4089, + "nodeType": "ParameterList", + "parameters": [], + "src": "883:0:17" + }, + "scope": 4091, + "src": "830:54:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4092, + "src": "64:822:17", + "usedErrors": [ + 4041, + 4047, + 4053, + 4057 + ], + "usedEvents": [ + 4015, + 4023, + 4031, + 4037 + ] + } + ], + "src": "39:848:17" + }, + "id": 17 + } + }, + "contracts": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "AccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "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": "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": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"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. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"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 `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"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. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "IAccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "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": [ + { + "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": "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": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"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\":[{\"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\":\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"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`.\"},\"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 granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { + "ERC1155": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "uri(uint256)": "0e89341c" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { + "IERC1155": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { + "IERC1155Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "bc197c81", + "onERC1155Received(address,address,uint256,uint256,bytes)": "f23a6e61", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "IERC1155MetadataURI": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "uri(uint256)": "0e89341c" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "Arrays": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "276:4526:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "276:4526:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "StorageSlot": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", + "sourceMap": "1245:2685:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", + "sourceMap": "1245:2685:9:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", + "sourceMap": "251:2847:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", + "sourceMap": "251:2847:10:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "ERC165Checker": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "contracts/Engagement.sol": { + "Engagement": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "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": "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": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "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": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3758": { + "entryPoint": null, + "id": 3758, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_576": { + "entryPoint": null, + "id": 576, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 229, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_1942": { + "entryPoint": 590, + "id": 1942, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_setURI_1189": { + "entryPoint": 139, + "id": 1189, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 483, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@requireNonEmptyURI_3792": { + "entryPoint": 158, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 859, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 925, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 971, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1857, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 741, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1044, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1799, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1448, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 1283, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1413, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1303, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1589, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 817, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1102, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1561, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 692, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1293, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1531, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1055, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 645, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1337, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 618, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 623, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 613, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 608, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 628, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1518, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1389, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 1816, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1201, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1347, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1384, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:9394:18", + "nodeType": "YulBlock", + "src": "0:9394:18", + "statements": [ + { + "body": { + "nativeSrc": "47:35:18", + "nodeType": "YulBlock", + "src": "47:35:18", + "statements": [ + { + "nativeSrc": "57:19:18", + "nodeType": "YulAssignment", + "src": "57:19:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:18", + "nodeType": "YulLiteral", + "src": "73:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:18", + "nodeType": "YulIdentifier", + "src": "67:5:18" + }, + "nativeSrc": "67:9:18", + "nodeType": "YulFunctionCall", + "src": "67:9:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:18", + "nodeType": "YulIdentifier", + "src": "57:6:18" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:18", + "nodeType": "YulTypedName", + "src": "40:6:18", + "type": "" + } + ], + "src": "7:75:18" + }, + { + "body": { + "nativeSrc": "177:28:18", + "nodeType": "YulBlock", + "src": "177:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:18", + "nodeType": "YulLiteral", + "src": "194:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:18", + "nodeType": "YulLiteral", + "src": "197:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:18", + "nodeType": "YulIdentifier", + "src": "187:6:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulFunctionCall", + "src": "187:12:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulExpressionStatement", + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:18", + "nodeType": "YulLiteral", + "src": "317:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:18", + "nodeType": "YulLiteral", + "src": "320:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:18", + "nodeType": "YulIdentifier", + "src": "310:6:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulFunctionCall", + "src": "310:12:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulExpressionStatement", + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "423:28:18", + "nodeType": "YulBlock", + "src": "423:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:18", + "nodeType": "YulLiteral", + "src": "440:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:18", + "nodeType": "YulLiteral", + "src": "443:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:18", + "nodeType": "YulIdentifier", + "src": "433:6:18" + }, + "nativeSrc": "433:12:18", + "nodeType": "YulFunctionCall", + "src": "433:12:18" + }, + "nativeSrc": "433:12:18", + "nodeType": "YulExpressionStatement", + "src": "433:12:18" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:18", + "nodeType": "YulFunctionDefinition", + "src": "334:117:18" + }, + { + "body": { + "nativeSrc": "546:28:18", + "nodeType": "YulBlock", + "src": "546:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:18", + "nodeType": "YulLiteral", + "src": "563:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:18", + "nodeType": "YulLiteral", + "src": "566:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:18", + "nodeType": "YulIdentifier", + "src": "556:6:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulFunctionCall", + "src": "556:12:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulExpressionStatement", + "src": "556:12:18" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:18", + "nodeType": "YulFunctionDefinition", + "src": "457:117:18" + }, + { + "body": { + "nativeSrc": "628:54:18", + "nodeType": "YulBlock", + "src": "628:54:18", + "statements": [ + { + "nativeSrc": "638:38:18", + "nodeType": "YulAssignment", + "src": "638:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:18", + "nodeType": "YulIdentifier", + "src": "656:5:18" + }, + { + "kind": "number", + "nativeSrc": "663:2:18", + "nodeType": "YulLiteral", + "src": "663:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:18", + "nodeType": "YulIdentifier", + "src": "652:3:18" + }, + "nativeSrc": "652:14:18", + "nodeType": "YulFunctionCall", + "src": "652:14:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:18", + "nodeType": "YulLiteral", + "src": "672:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:18", + "nodeType": "YulIdentifier", + "src": "668:3:18" + }, + "nativeSrc": "668:7:18", + "nodeType": "YulFunctionCall", + "src": "668:7:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:18", + "nodeType": "YulIdentifier", + "src": "648:3:18" + }, + "nativeSrc": "648:28:18", + "nodeType": "YulFunctionCall", + "src": "648:28:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:18", + "nodeType": "YulIdentifier", + "src": "638:6:18" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:18", + "nodeType": "YulTypedName", + "src": "611:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:18", + "nodeType": "YulTypedName", + "src": "621:6:18", + "type": "" + } + ], + "src": "580:102:18" + }, + { + "body": { + "nativeSrc": "716:152:18", + "nodeType": "YulBlock", + "src": "716:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:18", + "nodeType": "YulLiteral", + "src": "733:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:18", + "nodeType": "YulLiteral", + "src": "736:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:18", + "nodeType": "YulIdentifier", + "src": "726:6:18" + }, + "nativeSrc": "726:88:18", + "nodeType": "YulFunctionCall", + "src": "726:88:18" + }, + "nativeSrc": "726:88:18", + "nodeType": "YulExpressionStatement", + "src": "726:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:18", + "nodeType": "YulLiteral", + "src": "830:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:18", + "nodeType": "YulLiteral", + "src": "833:4:18", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:18", + "nodeType": "YulIdentifier", + "src": "823:6:18" + }, + "nativeSrc": "823:15:18", + "nodeType": "YulFunctionCall", + "src": "823:15:18" + }, + "nativeSrc": "823:15:18", + "nodeType": "YulExpressionStatement", + "src": "823:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:18", + "nodeType": "YulLiteral", + "src": "854:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:18", + "nodeType": "YulLiteral", + "src": "857:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:18", + "nodeType": "YulIdentifier", + "src": "847:6:18" + }, + "nativeSrc": "847:15:18", + "nodeType": "YulFunctionCall", + "src": "847:15:18" + }, + "nativeSrc": "847:15:18", + "nodeType": "YulExpressionStatement", + "src": "847:15:18" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:18", + "nodeType": "YulFunctionDefinition", + "src": "688:180:18" + }, + { + "body": { + "nativeSrc": "917:238:18", + "nodeType": "YulBlock", + "src": "917:238:18", + "statements": [ + { + "nativeSrc": "927:58:18", + "nodeType": "YulVariableDeclaration", + "src": "927:58:18", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:18", + "nodeType": "YulIdentifier", + "src": "949:6:18" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:18", + "nodeType": "YulIdentifier", + "src": "979:4:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:18", + "nodeType": "YulIdentifier", + "src": "957:21:18" + }, + "nativeSrc": "957:27:18", + "nodeType": "YulFunctionCall", + "src": "957:27:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:18", + "nodeType": "YulIdentifier", + "src": "945:3:18" + }, + "nativeSrc": "945:40:18", + "nodeType": "YulFunctionCall", + "src": "945:40:18" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:18", + "nodeType": "YulTypedName", + "src": "931:10:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:18", + "nodeType": "YulBlock", + "src": "1096:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:18", + "nodeType": "YulIdentifier", + "src": "1098:16:18" + }, + "nativeSrc": "1098:18:18", + "nodeType": "YulFunctionCall", + "src": "1098:18:18" + }, + "nativeSrc": "1098:18:18", + "nodeType": "YulExpressionStatement", + "src": "1098:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:18", + "nodeType": "YulIdentifier", + "src": "1039:10:18" + }, + { + "kind": "number", + "nativeSrc": "1051:18:18", + "nodeType": "YulLiteral", + "src": "1051:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:18", + "nodeType": "YulIdentifier", + "src": "1036:2:18" + }, + "nativeSrc": "1036:34:18", + "nodeType": "YulFunctionCall", + "src": "1036:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:18", + "nodeType": "YulIdentifier", + "src": "1075:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:18", + "nodeType": "YulIdentifier", + "src": "1087:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:18", + "nodeType": "YulIdentifier", + "src": "1072:2:18" + }, + "nativeSrc": "1072:22:18", + "nodeType": "YulFunctionCall", + "src": "1072:22:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:18", + "nodeType": "YulIdentifier", + "src": "1033:2:18" + }, + "nativeSrc": "1033:62:18", + "nodeType": "YulFunctionCall", + "src": "1033:62:18" + }, + "nativeSrc": "1030:88:18", + "nodeType": "YulIf", + "src": "1030:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:18", + "nodeType": "YulLiteral", + "src": "1134:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:18", + "nodeType": "YulIdentifier", + "src": "1138:10:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:18", + "nodeType": "YulIdentifier", + "src": "1127:6:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulFunctionCall", + "src": "1127:22:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulExpressionStatement", + "src": "1127:22:18" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:18", + "nodeType": "YulTypedName", + "src": "903:6:18", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:18", + "nodeType": "YulTypedName", + "src": "911:4:18", + "type": "" + } + ], + "src": "874:281:18" + }, + { + "body": { + "nativeSrc": "1202:88:18", + "nodeType": "YulBlock", + "src": "1202:88:18", + "statements": [ + { + "nativeSrc": "1212:30:18", + "nodeType": "YulAssignment", + "src": "1212:30:18", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:18", + "nodeType": "YulIdentifier", + "src": "1222:18:18" + }, + "nativeSrc": "1222:20:18", + "nodeType": "YulFunctionCall", + "src": "1222:20:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:18", + "nodeType": "YulIdentifier", + "src": "1212:6:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:18", + "nodeType": "YulIdentifier", + "src": "1271:6:18" + }, + { + "name": "size", + "nativeSrc": "1279:4:18", + "nodeType": "YulIdentifier", + "src": "1279:4:18" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:18", + "nodeType": "YulIdentifier", + "src": "1251:19:18" + }, + "nativeSrc": "1251:33:18", + "nodeType": "YulFunctionCall", + "src": "1251:33:18" + }, + "nativeSrc": "1251:33:18", + "nodeType": "YulExpressionStatement", + "src": "1251:33:18" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:18", + "nodeType": "YulTypedName", + "src": "1186:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:18", + "nodeType": "YulTypedName", + "src": "1195:6:18", + "type": "" + } + ], + "src": "1161:129:18" + }, + { + "body": { + "nativeSrc": "1363:241:18", + "nodeType": "YulBlock", + "src": "1363:241:18", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:18", + "nodeType": "YulBlock", + "src": "1468:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:18", + "nodeType": "YulIdentifier", + "src": "1470:16:18" + }, + "nativeSrc": "1470:18:18", + "nodeType": "YulFunctionCall", + "src": "1470:18:18" + }, + "nativeSrc": "1470:18:18", + "nodeType": "YulExpressionStatement", + "src": "1470:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:18", + "nodeType": "YulIdentifier", + "src": "1440:6:18" + }, + { + "kind": "number", + "nativeSrc": "1448:18:18", + "nodeType": "YulLiteral", + "src": "1448:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:18", + "nodeType": "YulIdentifier", + "src": "1437:2:18" + }, + "nativeSrc": "1437:30:18", + "nodeType": "YulFunctionCall", + "src": "1437:30:18" + }, + "nativeSrc": "1434:56:18", + "nodeType": "YulIf", + "src": "1434:56:18" + }, + { + "nativeSrc": "1500:37:18", + "nodeType": "YulAssignment", + "src": "1500:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:18", + "nodeType": "YulIdentifier", + "src": "1530:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:18", + "nodeType": "YulIdentifier", + "src": "1508:21:18" + }, + "nativeSrc": "1508:29:18", + "nodeType": "YulFunctionCall", + "src": "1508:29:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:18", + "nodeType": "YulIdentifier", + "src": "1500:4:18" + } + ] + }, + { + "nativeSrc": "1574:23:18", + "nodeType": "YulAssignment", + "src": "1574:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:18", + "nodeType": "YulIdentifier", + "src": "1586:4:18" + }, + { + "kind": "number", + "nativeSrc": "1592:4:18", + "nodeType": "YulLiteral", + "src": "1592:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:18", + "nodeType": "YulIdentifier", + "src": "1582:3:18" + }, + "nativeSrc": "1582:15:18", + "nodeType": "YulFunctionCall", + "src": "1582:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:18", + "nodeType": "YulIdentifier", + "src": "1574:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:18", + "nodeType": "YulTypedName", + "src": "1347:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:18", + "nodeType": "YulTypedName", + "src": "1358:4:18", + "type": "" + } + ], + "src": "1296:308:18" + }, + { + "body": { + "nativeSrc": "1672:186:18", + "nodeType": "YulBlock", + "src": "1672:186:18", + "statements": [ + { + "nativeSrc": "1683:10:18", + "nodeType": "YulVariableDeclaration", + "src": "1683:10:18", + "value": { + "kind": "number", + "nativeSrc": "1692:1:18", + "nodeType": "YulLiteral", + "src": "1692:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1687:1:18", + "nodeType": "YulTypedName", + "src": "1687:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1752:63:18", + "nodeType": "YulBlock", + "src": "1752:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1777:3:18", + "nodeType": "YulIdentifier", + "src": "1777:3:18" + }, + { + "name": "i", + "nativeSrc": "1782:1:18", + "nodeType": "YulIdentifier", + "src": "1782:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:18", + "nodeType": "YulIdentifier", + "src": "1773:3:18" + }, + "nativeSrc": "1773:11:18", + "nodeType": "YulFunctionCall", + "src": "1773:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1796:3:18", + "nodeType": "YulIdentifier", + "src": "1796:3:18" + }, + { + "name": "i", + "nativeSrc": "1801:1:18", + "nodeType": "YulIdentifier", + "src": "1801:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1792:3:18", + "nodeType": "YulIdentifier", + "src": "1792:3:18" + }, + "nativeSrc": "1792:11:18", + "nodeType": "YulFunctionCall", + "src": "1792:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1786:5:18", + "nodeType": "YulIdentifier", + "src": "1786:5:18" + }, + "nativeSrc": "1786:18:18", + "nodeType": "YulFunctionCall", + "src": "1786:18:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1766:6:18", + "nodeType": "YulIdentifier", + "src": "1766:6:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulFunctionCall", + "src": "1766:39:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulExpressionStatement", + "src": "1766:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1713:1:18", + "nodeType": "YulIdentifier", + "src": "1713:1:18" + }, + { + "name": "length", + "nativeSrc": "1716:6:18", + "nodeType": "YulIdentifier", + "src": "1716:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1710:2:18", + "nodeType": "YulIdentifier", + "src": "1710:2:18" + }, + "nativeSrc": "1710:13:18", + "nodeType": "YulFunctionCall", + "src": "1710:13:18" + }, + "nativeSrc": "1702:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1724:19:18", + "nodeType": "YulBlock", + "src": "1724:19:18", + "statements": [ + { + "nativeSrc": "1726:15:18", + "nodeType": "YulAssignment", + "src": "1726:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1735:1:18", + "nodeType": "YulIdentifier", + "src": "1735:1:18" + }, + { + "kind": "number", + "nativeSrc": "1738:2:18", + "nodeType": "YulLiteral", + "src": "1738:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1731:3:18", + "nodeType": "YulIdentifier", + "src": "1731:3:18" + }, + "nativeSrc": "1731:10:18", + "nodeType": "YulFunctionCall", + "src": "1731:10:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1726:1:18", + "nodeType": "YulIdentifier", + "src": "1726:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1706:3:18", + "nodeType": "YulBlock", + "src": "1706:3:18", + "statements": [] + }, + "src": "1702:113:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1835:3:18", + "nodeType": "YulIdentifier", + "src": "1835:3:18" + }, + { + "name": "length", + "nativeSrc": "1840:6:18", + "nodeType": "YulIdentifier", + "src": "1840:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1831:3:18", + "nodeType": "YulIdentifier", + "src": "1831:3:18" + }, + "nativeSrc": "1831:16:18", + "nodeType": "YulFunctionCall", + "src": "1831:16:18" + }, + { + "kind": "number", + "nativeSrc": "1849:1:18", + "nodeType": "YulLiteral", + "src": "1849:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1824:6:18", + "nodeType": "YulIdentifier", + "src": "1824:6:18" + }, + "nativeSrc": "1824:27:18", + "nodeType": "YulFunctionCall", + "src": "1824:27:18" + }, + "nativeSrc": "1824:27:18", + "nodeType": "YulExpressionStatement", + "src": "1824:27:18" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:248:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1654:3:18", + "nodeType": "YulTypedName", + "src": "1654:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1659:3:18", + "nodeType": "YulTypedName", + "src": "1659:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1664:6:18", + "nodeType": "YulTypedName", + "src": "1664:6:18", + "type": "" + } + ], + "src": "1610:248:18" + }, + { + "body": { + "nativeSrc": "1959:339:18", + "nodeType": "YulBlock", + "src": "1959:339:18", + "statements": [ + { + "nativeSrc": "1969:75:18", + "nodeType": "YulAssignment", + "src": "1969:75:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2036:6:18", + "nodeType": "YulIdentifier", + "src": "2036:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1994:41:18", + "nodeType": "YulIdentifier", + "src": "1994:41:18" + }, + "nativeSrc": "1994:49:18", + "nodeType": "YulFunctionCall", + "src": "1994:49:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1978:15:18", + "nodeType": "YulIdentifier", + "src": "1978:15:18" + }, + "nativeSrc": "1978:66:18", + "nodeType": "YulFunctionCall", + "src": "1978:66:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1969:5:18", + "nodeType": "YulIdentifier", + "src": "1969:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2060:5:18", + "nodeType": "YulIdentifier", + "src": "2060:5:18" + }, + { + "name": "length", + "nativeSrc": "2067:6:18", + "nodeType": "YulIdentifier", + "src": "2067:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2053:6:18", + "nodeType": "YulIdentifier", + "src": "2053:6:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulFunctionCall", + "src": "2053:21:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulExpressionStatement", + "src": "2053:21:18" + }, + { + "nativeSrc": "2083:27:18", + "nodeType": "YulVariableDeclaration", + "src": "2083:27:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2098:5:18", + "nodeType": "YulIdentifier", + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:4:18", + "nodeType": "YulLiteral", + "src": "2105:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2094:3:18", + "nodeType": "YulIdentifier", + "src": "2094:3:18" + }, + "nativeSrc": "2094:16:18", + "nodeType": "YulFunctionCall", + "src": "2094:16:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2087:3:18", + "nodeType": "YulTypedName", + "src": "2087:3:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2148:83:18", + "nodeType": "YulBlock", + "src": "2148:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2150:77:18", + "nodeType": "YulIdentifier", + "src": "2150:77:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulFunctionCall", + "src": "2150:79:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulExpressionStatement", + "src": "2150:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2129:3:18", + "nodeType": "YulIdentifier", + "src": "2129:3:18" + }, + { + "name": "length", + "nativeSrc": "2134:6:18", + "nodeType": "YulIdentifier", + "src": "2134:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2125:3:18", + "nodeType": "YulIdentifier", + "src": "2125:3:18" + }, + "nativeSrc": "2125:16:18", + "nodeType": "YulFunctionCall", + "src": "2125:16:18" + }, + { + "name": "end", + "nativeSrc": "2143:3:18", + "nodeType": "YulIdentifier", + "src": "2143:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2122:2:18", + "nodeType": "YulIdentifier", + "src": "2122:2:18" + }, + "nativeSrc": "2122:25:18", + "nodeType": "YulFunctionCall", + "src": "2122:25:18" + }, + "nativeSrc": "2119:112:18", + "nodeType": "YulIf", + "src": "2119:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2275:3:18", + "nodeType": "YulIdentifier", + "src": "2275:3:18" + }, + { + "name": "dst", + "nativeSrc": "2280:3:18", + "nodeType": "YulIdentifier", + "src": "2280:3:18" + }, + { + "name": "length", + "nativeSrc": "2285:6:18", + "nodeType": "YulIdentifier", + "src": "2285:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2240:34:18", + "nodeType": "YulIdentifier", + "src": "2240:34:18" + }, + "nativeSrc": "2240:52:18", + "nodeType": "YulFunctionCall", + "src": "2240:52:18" + }, + "nativeSrc": "2240:52:18", + "nodeType": "YulExpressionStatement", + "src": "2240:52:18" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1864:434:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1932:3:18", + "nodeType": "YulTypedName", + "src": "1932:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1937:6:18", + "nodeType": "YulTypedName", + "src": "1937:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1945:3:18", + "nodeType": "YulTypedName", + "src": "1945:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1953:5:18", + "nodeType": "YulTypedName", + "src": "1953:5:18", + "type": "" + } + ], + "src": "1864:434:18" + }, + { + "body": { + "nativeSrc": "2391:282:18", + "nodeType": "YulBlock", + "src": "2391:282:18", + "statements": [ + { + "body": { + "nativeSrc": "2440:83:18", + "nodeType": "YulBlock", + "src": "2440:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2442:77:18", + "nodeType": "YulIdentifier", + "src": "2442:77:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulFunctionCall", + "src": "2442:79:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulExpressionStatement", + "src": "2442:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2419:6:18", + "nodeType": "YulIdentifier", + "src": "2419:6:18" + }, + { + "kind": "number", + "nativeSrc": "2427:4:18", + "nodeType": "YulLiteral", + "src": "2427:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2415:3:18", + "nodeType": "YulIdentifier", + "src": "2415:3:18" + }, + "nativeSrc": "2415:17:18", + "nodeType": "YulFunctionCall", + "src": "2415:17:18" + }, + { + "name": "end", + "nativeSrc": "2434:3:18", + "nodeType": "YulIdentifier", + "src": "2434:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2411:3:18", + "nodeType": "YulIdentifier", + "src": "2411:3:18" + }, + "nativeSrc": "2411:27:18", + "nodeType": "YulFunctionCall", + "src": "2411:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2404:6:18", + "nodeType": "YulIdentifier", + "src": "2404:6:18" + }, + "nativeSrc": "2404:35:18", + "nodeType": "YulFunctionCall", + "src": "2404:35:18" + }, + "nativeSrc": "2401:122:18", + "nodeType": "YulIf", + "src": "2401:122:18" + }, + { + "nativeSrc": "2532:27:18", + "nodeType": "YulVariableDeclaration", + "src": "2532:27:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2552:6:18", + "nodeType": "YulIdentifier", + "src": "2552:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2546:5:18", + "nodeType": "YulIdentifier", + "src": "2546:5:18" + }, + "nativeSrc": "2546:13:18", + "nodeType": "YulFunctionCall", + "src": "2546:13:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2536:6:18", + "nodeType": "YulTypedName", + "src": "2536:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "2568:99:18", + "nodeType": "YulAssignment", + "src": "2568:99:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2640:6:18", + "nodeType": "YulIdentifier", + "src": "2640:6:18" + }, + { + "kind": "number", + "nativeSrc": "2648:4:18", + "nodeType": "YulLiteral", + "src": "2648:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2636:3:18", + "nodeType": "YulIdentifier", + "src": "2636:3:18" + }, + "nativeSrc": "2636:17:18", + "nodeType": "YulFunctionCall", + "src": "2636:17:18" + }, + { + "name": "length", + "nativeSrc": "2655:6:18", + "nodeType": "YulIdentifier", + "src": "2655:6:18" + }, + { + "name": "end", + "nativeSrc": "2663:3:18", + "nodeType": "YulIdentifier", + "src": "2663:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2577:58:18", + "nodeType": "YulIdentifier", + "src": "2577:58:18" + }, + "nativeSrc": "2577:90:18", + "nodeType": "YulFunctionCall", + "src": "2577:90:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2568:5:18", + "nodeType": "YulIdentifier", + "src": "2568:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2318:355:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2369:6:18", + "nodeType": "YulTypedName", + "src": "2369:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2377:3:18", + "nodeType": "YulTypedName", + "src": "2377:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2385:5:18", + "nodeType": "YulTypedName", + "src": "2385:5:18", + "type": "" + } + ], + "src": "2318:355:18" + }, + { + "body": { + "nativeSrc": "2766:437:18", + "nodeType": "YulBlock", + "src": "2766:437:18", + "statements": [ + { + "body": { + "nativeSrc": "2812:83:18", + "nodeType": "YulBlock", + "src": "2812:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2814:77:18", + "nodeType": "YulIdentifier", + "src": "2814:77:18" + }, + "nativeSrc": "2814:79:18", + "nodeType": "YulFunctionCall", + "src": "2814:79:18" + }, + "nativeSrc": "2814:79:18", + "nodeType": "YulExpressionStatement", + "src": "2814:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2787:7:18", + "nodeType": "YulIdentifier", + "src": "2787:7:18" + }, + { + "name": "headStart", + "nativeSrc": "2796:9:18", + "nodeType": "YulIdentifier", + "src": "2796:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2783:3:18", + "nodeType": "YulIdentifier", + "src": "2783:3:18" + }, + "nativeSrc": "2783:23:18", + "nodeType": "YulFunctionCall", + "src": "2783:23:18" + }, + { + "kind": "number", + "nativeSrc": "2808:2:18", + "nodeType": "YulLiteral", + "src": "2808:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2779:3:18", + "nodeType": "YulIdentifier", + "src": "2779:3:18" + }, + "nativeSrc": "2779:32:18", + "nodeType": "YulFunctionCall", + "src": "2779:32:18" + }, + "nativeSrc": "2776:119:18", + "nodeType": "YulIf", + "src": "2776:119:18" + }, + { + "nativeSrc": "2905:291:18", + "nodeType": "YulBlock", + "src": "2905:291:18", + "statements": [ + { + "nativeSrc": "2920:38:18", + "nodeType": "YulVariableDeclaration", + "src": "2920:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2944:9:18", + "nodeType": "YulIdentifier", + "src": "2944:9:18" + }, + { + "kind": "number", + "nativeSrc": "2955:1:18", + "nodeType": "YulLiteral", + "src": "2955:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2940:3:18", + "nodeType": "YulIdentifier", + "src": "2940:3:18" + }, + "nativeSrc": "2940:17:18", + "nodeType": "YulFunctionCall", + "src": "2940:17:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2934:5:18", + "nodeType": "YulIdentifier", + "src": "2934:5:18" + }, + "nativeSrc": "2934:24:18", + "nodeType": "YulFunctionCall", + "src": "2934:24:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2924:6:18", + "nodeType": "YulTypedName", + "src": "2924:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3005:83:18", + "nodeType": "YulBlock", + "src": "3005:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3007:77:18", + "nodeType": "YulIdentifier", + "src": "3007:77:18" + }, + "nativeSrc": "3007:79:18", + "nodeType": "YulFunctionCall", + "src": "3007:79:18" + }, + "nativeSrc": "3007:79:18", + "nodeType": "YulExpressionStatement", + "src": "3007:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2977:6:18", + "nodeType": "YulIdentifier", + "src": "2977:6:18" + }, + { + "kind": "number", + "nativeSrc": "2985:18:18", + "nodeType": "YulLiteral", + "src": "2985:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2974:2:18", + "nodeType": "YulIdentifier", + "src": "2974:2:18" + }, + "nativeSrc": "2974:30:18", + "nodeType": "YulFunctionCall", + "src": "2974:30:18" + }, + "nativeSrc": "2971:117:18", + "nodeType": "YulIf", + "src": "2971:117:18" + }, + { + "nativeSrc": "3102:84:18", + "nodeType": "YulAssignment", + "src": "3102:84:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3158:9:18", + "nodeType": "YulIdentifier", + "src": "3158:9:18" + }, + { + "name": "offset", + "nativeSrc": "3169:6:18", + "nodeType": "YulIdentifier", + "src": "3169:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3154:3:18", + "nodeType": "YulIdentifier", + "src": "3154:3:18" + }, + "nativeSrc": "3154:22:18", + "nodeType": "YulFunctionCall", + "src": "3154:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "3178:7:18", + "nodeType": "YulIdentifier", + "src": "3178:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3112:41:18", + "nodeType": "YulIdentifier", + "src": "3112:41:18" + }, + "nativeSrc": "3112:74:18", + "nodeType": "YulFunctionCall", + "src": "3112:74:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3102:6:18", + "nodeType": "YulIdentifier", + "src": "3102:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2679:524:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2736:9:18", + "nodeType": "YulTypedName", + "src": "2736:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2747:7:18", + "nodeType": "YulTypedName", + "src": "2747:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2759:6:18", + "nodeType": "YulTypedName", + "src": "2759:6:18", + "type": "" + } + ], + "src": "2679:524:18" + }, + { + "body": { + "nativeSrc": "3268:40:18", + "nodeType": "YulBlock", + "src": "3268:40:18", + "statements": [ + { + "nativeSrc": "3279:22:18", + "nodeType": "YulAssignment", + "src": "3279:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3295:5:18", + "nodeType": "YulIdentifier", + "src": "3295:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3289:5:18", + "nodeType": "YulIdentifier", + "src": "3289:5:18" + }, + "nativeSrc": "3289:12:18", + "nodeType": "YulFunctionCall", + "src": "3289:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3279:6:18", + "nodeType": "YulIdentifier", + "src": "3279:6:18" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3209:99:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3251:5:18", + "nodeType": "YulTypedName", + "src": "3251:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3261:6:18", + "nodeType": "YulTypedName", + "src": "3261:6:18", + "type": "" + } + ], + "src": "3209:99:18" + }, + { + "body": { + "nativeSrc": "3342:152:18", + "nodeType": "YulBlock", + "src": "3342:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3359:1:18", + "nodeType": "YulLiteral", + "src": "3359:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3362:77:18", + "nodeType": "YulLiteral", + "src": "3362:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3352:6:18", + "nodeType": "YulIdentifier", + "src": "3352:6:18" + }, + "nativeSrc": "3352:88:18", + "nodeType": "YulFunctionCall", + "src": "3352:88:18" + }, + "nativeSrc": "3352:88:18", + "nodeType": "YulExpressionStatement", + "src": "3352:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3456:1:18", + "nodeType": "YulLiteral", + "src": "3456:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3459:4:18", + "nodeType": "YulLiteral", + "src": "3459:4:18", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3449:6:18", + "nodeType": "YulIdentifier", + "src": "3449:6:18" + }, + "nativeSrc": "3449:15:18", + "nodeType": "YulFunctionCall", + "src": "3449:15:18" + }, + "nativeSrc": "3449:15:18", + "nodeType": "YulExpressionStatement", + "src": "3449:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3480:1:18", + "nodeType": "YulLiteral", + "src": "3480:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3483:4:18", + "nodeType": "YulLiteral", + "src": "3483:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3473:6:18", + "nodeType": "YulIdentifier", + "src": "3473:6:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulFunctionCall", + "src": "3473:15:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulExpressionStatement", + "src": "3473:15:18" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3314:180:18", + "nodeType": "YulFunctionDefinition", + "src": "3314:180:18" + }, + { + "body": { + "nativeSrc": "3551:269:18", + "nodeType": "YulBlock", + "src": "3551:269:18", + "statements": [ + { + "nativeSrc": "3561:22:18", + "nodeType": "YulAssignment", + "src": "3561:22:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3575:4:18", + "nodeType": "YulIdentifier", + "src": "3575:4:18" + }, + { + "kind": "number", + "nativeSrc": "3581:1:18", + "nodeType": "YulLiteral", + "src": "3581:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3571:3:18", + "nodeType": "YulIdentifier", + "src": "3571:3:18" + }, + "nativeSrc": "3571:12:18", + "nodeType": "YulFunctionCall", + "src": "3571:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3561:6:18", + "nodeType": "YulIdentifier", + "src": "3561:6:18" + } + ] + }, + { + "nativeSrc": "3592:38:18", + "nodeType": "YulVariableDeclaration", + "src": "3592:38:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3622:4:18", + "nodeType": "YulIdentifier", + "src": "3622:4:18" + }, + { + "kind": "number", + "nativeSrc": "3628:1:18", + "nodeType": "YulLiteral", + "src": "3628:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3618:3:18", + "nodeType": "YulIdentifier", + "src": "3618:3:18" + }, + "nativeSrc": "3618:12:18", + "nodeType": "YulFunctionCall", + "src": "3618:12:18" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3596:18:18", + "nodeType": "YulTypedName", + "src": "3596:18:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3669:51:18", + "nodeType": "YulBlock", + "src": "3669:51:18", + "statements": [ + { + "nativeSrc": "3683:27:18", + "nodeType": "YulAssignment", + "src": "3683:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3697:6:18", + "nodeType": "YulIdentifier", + "src": "3697:6:18" + }, + { + "kind": "number", + "nativeSrc": "3705:4:18", + "nodeType": "YulLiteral", + "src": "3705:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3693:3:18", + "nodeType": "YulIdentifier", + "src": "3693:3:18" + }, + "nativeSrc": "3693:17:18", + "nodeType": "YulFunctionCall", + "src": "3693:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3683:6:18", + "nodeType": "YulIdentifier", + "src": "3683:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3649:18:18", + "nodeType": "YulIdentifier", + "src": "3649:18:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3642:6:18", + "nodeType": "YulIdentifier", + "src": "3642:6:18" + }, + "nativeSrc": "3642:26:18", + "nodeType": "YulFunctionCall", + "src": "3642:26:18" + }, + "nativeSrc": "3639:81:18", + "nodeType": "YulIf", + "src": "3639:81:18" + }, + { + "body": { + "nativeSrc": "3772:42:18", + "nodeType": "YulBlock", + "src": "3772:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "3786:16:18", + "nodeType": "YulIdentifier", + "src": "3786:16:18" + }, + "nativeSrc": "3786:18:18", + "nodeType": "YulFunctionCall", + "src": "3786:18:18" + }, + "nativeSrc": "3786:18:18", + "nodeType": "YulExpressionStatement", + "src": "3786:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3736:18:18", + "nodeType": "YulIdentifier", + "src": "3736:18:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3759:6:18", + "nodeType": "YulIdentifier", + "src": "3759:6:18" + }, + { + "kind": "number", + "nativeSrc": "3767:2:18", + "nodeType": "YulLiteral", + "src": "3767:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3756:2:18", + "nodeType": "YulIdentifier", + "src": "3756:2:18" + }, + "nativeSrc": "3756:14:18", + "nodeType": "YulFunctionCall", + "src": "3756:14:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3733:2:18", + "nodeType": "YulIdentifier", + "src": "3733:2:18" + }, + "nativeSrc": "3733:38:18", + "nodeType": "YulFunctionCall", + "src": "3733:38:18" + }, + "nativeSrc": "3730:84:18", + "nodeType": "YulIf", + "src": "3730:84:18" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3500:320:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3535:4:18", + "nodeType": "YulTypedName", + "src": "3535:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3544:6:18", + "nodeType": "YulTypedName", + "src": "3544:6:18", + "type": "" + } + ], + "src": "3500:320:18" + }, + { + "body": { + "nativeSrc": "3880:87:18", + "nodeType": "YulBlock", + "src": "3880:87:18", + "statements": [ + { + "nativeSrc": "3890:11:18", + "nodeType": "YulAssignment", + "src": "3890:11:18", + "value": { + "name": "ptr", + "nativeSrc": "3898:3:18", + "nodeType": "YulIdentifier", + "src": "3898:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3890:4:18", + "nodeType": "YulIdentifier", + "src": "3890:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3918:1:18", + "nodeType": "YulLiteral", + "src": "3918:1:18", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3921:3:18", + "nodeType": "YulIdentifier", + "src": "3921:3:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3911:6:18", + "nodeType": "YulIdentifier", + "src": "3911:6:18" + }, + "nativeSrc": "3911:14:18", + "nodeType": "YulFunctionCall", + "src": "3911:14:18" + }, + "nativeSrc": "3911:14:18", + "nodeType": "YulExpressionStatement", + "src": "3911:14:18" + }, + { + "nativeSrc": "3934:26:18", + "nodeType": "YulAssignment", + "src": "3934:26:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3952:1:18", + "nodeType": "YulLiteral", + "src": "3952:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3955:4:18", + "nodeType": "YulLiteral", + "src": "3955:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3942:9:18", + "nodeType": "YulIdentifier", + "src": "3942:9:18" + }, + "nativeSrc": "3942:18:18", + "nodeType": "YulFunctionCall", + "src": "3942:18:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3934:4:18", + "nodeType": "YulIdentifier", + "src": "3934:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3826:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3867:3:18", + "nodeType": "YulTypedName", + "src": "3867:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3875:4:18", + "nodeType": "YulTypedName", + "src": "3875:4:18", + "type": "" + } + ], + "src": "3826:141:18" + }, + { + "body": { + "nativeSrc": "4017:49:18", + "nodeType": "YulBlock", + "src": "4017:49:18", + "statements": [ + { + "nativeSrc": "4027:33:18", + "nodeType": "YulAssignment", + "src": "4027:33:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4045:5:18", + "nodeType": "YulIdentifier", + "src": "4045:5:18" + }, + { + "kind": "number", + "nativeSrc": "4052:2:18", + "nodeType": "YulLiteral", + "src": "4052:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4041:3:18", + "nodeType": "YulIdentifier", + "src": "4041:3:18" + }, + "nativeSrc": "4041:14:18", + "nodeType": "YulFunctionCall", + "src": "4041:14:18" + }, + { + "kind": "number", + "nativeSrc": "4057:2:18", + "nodeType": "YulLiteral", + "src": "4057:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4037:3:18", + "nodeType": "YulIdentifier", + "src": "4037:3:18" + }, + "nativeSrc": "4037:23:18", + "nodeType": "YulFunctionCall", + "src": "4037:23:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4027:6:18", + "nodeType": "YulIdentifier", + "src": "4027:6:18" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3973:93:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4000:5:18", + "nodeType": "YulTypedName", + "src": "4000:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4010:6:18", + "nodeType": "YulTypedName", + "src": "4010:6:18", + "type": "" + } + ], + "src": "3973:93:18" + }, + { + "body": { + "nativeSrc": "4125:54:18", + "nodeType": "YulBlock", + "src": "4125:54:18", + "statements": [ + { + "nativeSrc": "4135:37:18", + "nodeType": "YulAssignment", + "src": "4135:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4160:4:18", + "nodeType": "YulIdentifier", + "src": "4160:4:18" + }, + { + "name": "value", + "nativeSrc": "4166:5:18", + "nodeType": "YulIdentifier", + "src": "4166:5:18" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4156:3:18", + "nodeType": "YulIdentifier", + "src": "4156:3:18" + }, + "nativeSrc": "4156:16:18", + "nodeType": "YulFunctionCall", + "src": "4156:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4135:8:18", + "nodeType": "YulIdentifier", + "src": "4135:8:18" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4072:107:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4100:4:18", + "nodeType": "YulTypedName", + "src": "4100:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4106:5:18", + "nodeType": "YulTypedName", + "src": "4106:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4116:8:18", + "nodeType": "YulTypedName", + "src": "4116:8:18", + "type": "" + } + ], + "src": "4072:107:18" + }, + { + "body": { + "nativeSrc": "4261:317:18", + "nodeType": "YulBlock", + "src": "4261:317:18", + "statements": [ + { + "nativeSrc": "4271:35:18", + "nodeType": "YulVariableDeclaration", + "src": "4271:35:18", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4292:10:18", + "nodeType": "YulIdentifier", + "src": "4292:10:18" + }, + { + "kind": "number", + "nativeSrc": "4304:1:18", + "nodeType": "YulLiteral", + "src": "4304:1:18", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4288:3:18", + "nodeType": "YulIdentifier", + "src": "4288:3:18" + }, + "nativeSrc": "4288:18:18", + "nodeType": "YulFunctionCall", + "src": "4288:18:18" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4275:9:18", + "nodeType": "YulTypedName", + "src": "4275:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "4315:109:18", + "nodeType": "YulVariableDeclaration", + "src": "4315:109:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4346:9:18", + "nodeType": "YulIdentifier", + "src": "4346:9:18" + }, + { + "kind": "number", + "nativeSrc": "4357:66:18", + "nodeType": "YulLiteral", + "src": "4357:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4327:18:18", + "nodeType": "YulIdentifier", + "src": "4327:18:18" + }, + "nativeSrc": "4327:97:18", + "nodeType": "YulFunctionCall", + "src": "4327:97:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4319:4:18", + "nodeType": "YulTypedName", + "src": "4319:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "4433:51:18", + "nodeType": "YulAssignment", + "src": "4433:51:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4464:9:18", + "nodeType": "YulIdentifier", + "src": "4464:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "4475:8:18", + "nodeType": "YulIdentifier", + "src": "4475:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4445:18:18", + "nodeType": "YulIdentifier", + "src": "4445:18:18" + }, + "nativeSrc": "4445:39:18", + "nodeType": "YulFunctionCall", + "src": "4445:39:18" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4433:8:18", + "nodeType": "YulIdentifier", + "src": "4433:8:18" + } + ] + }, + { + "nativeSrc": "4493:30:18", + "nodeType": "YulAssignment", + "src": "4493:30:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4506:5:18", + "nodeType": "YulIdentifier", + "src": "4506:5:18" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4517:4:18", + "nodeType": "YulIdentifier", + "src": "4517:4:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4513:3:18", + "nodeType": "YulIdentifier", + "src": "4513:3:18" + }, + "nativeSrc": "4513:9:18", + "nodeType": "YulFunctionCall", + "src": "4513:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4502:3:18", + "nodeType": "YulIdentifier", + "src": "4502:3:18" + }, + "nativeSrc": "4502:21:18", + "nodeType": "YulFunctionCall", + "src": "4502:21:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4493:5:18", + "nodeType": "YulIdentifier", + "src": "4493:5:18" + } + ] + }, + { + "nativeSrc": "4532:40:18", + "nodeType": "YulAssignment", + "src": "4532:40:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4545:5:18", + "nodeType": "YulIdentifier", + "src": "4545:5:18" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4556:8:18", + "nodeType": "YulIdentifier", + "src": "4556:8:18" + }, + { + "name": "mask", + "nativeSrc": "4566:4:18", + "nodeType": "YulIdentifier", + "src": "4566:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4552:3:18", + "nodeType": "YulIdentifier", + "src": "4552:3:18" + }, + "nativeSrc": "4552:19:18", + "nodeType": "YulFunctionCall", + "src": "4552:19:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4542:2:18", + "nodeType": "YulIdentifier", + "src": "4542:2:18" + }, + "nativeSrc": "4542:30:18", + "nodeType": "YulFunctionCall", + "src": "4542:30:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4532:6:18", + "nodeType": "YulIdentifier", + "src": "4532:6:18" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4185:393:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4222:5:18", + "nodeType": "YulTypedName", + "src": "4222:5:18", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4229:10:18", + "nodeType": "YulTypedName", + "src": "4229:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4241:8:18", + "nodeType": "YulTypedName", + "src": "4241:8:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4254:6:18", + "nodeType": "YulTypedName", + "src": "4254:6:18", + "type": "" + } + ], + "src": "4185:393:18" + }, + { + "body": { + "nativeSrc": "4629:32:18", + "nodeType": "YulBlock", + "src": "4629:32:18", + "statements": [ + { + "nativeSrc": "4639:16:18", + "nodeType": "YulAssignment", + "src": "4639:16:18", + "value": { + "name": "value", + "nativeSrc": "4650:5:18", + "nodeType": "YulIdentifier", + "src": "4650:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4639:7:18", + "nodeType": "YulIdentifier", + "src": "4639:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4584:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4611:5:18", + "nodeType": "YulTypedName", + "src": "4611:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4621:7:18", + "nodeType": "YulTypedName", + "src": "4621:7:18", + "type": "" + } + ], + "src": "4584:77:18" + }, + { + "body": { + "nativeSrc": "4699:28:18", + "nodeType": "YulBlock", + "src": "4699:28:18", + "statements": [ + { + "nativeSrc": "4709:12:18", + "nodeType": "YulAssignment", + "src": "4709:12:18", + "value": { + "name": "value", + "nativeSrc": "4716:5:18", + "nodeType": "YulIdentifier", + "src": "4716:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4709:3:18", + "nodeType": "YulIdentifier", + "src": "4709:3:18" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4667:60:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4685:5:18", + "nodeType": "YulTypedName", + "src": "4685:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4695:3:18", + "nodeType": "YulTypedName", + "src": "4695:3:18", + "type": "" + } + ], + "src": "4667:60:18" + }, + { + "body": { + "nativeSrc": "4793:82:18", + "nodeType": "YulBlock", + "src": "4793:82:18", + "statements": [ + { + "nativeSrc": "4803:66:18", + "nodeType": "YulAssignment", + "src": "4803:66:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4861:5:18", + "nodeType": "YulIdentifier", + "src": "4861:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4843:17:18", + "nodeType": "YulIdentifier", + "src": "4843:17:18" + }, + "nativeSrc": "4843:24:18", + "nodeType": "YulFunctionCall", + "src": "4843:24:18" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4834:8:18", + "nodeType": "YulIdentifier", + "src": "4834:8:18" + }, + "nativeSrc": "4834:34:18", + "nodeType": "YulFunctionCall", + "src": "4834:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4816:17:18", + "nodeType": "YulIdentifier", + "src": "4816:17:18" + }, + "nativeSrc": "4816:53:18", + "nodeType": "YulFunctionCall", + "src": "4816:53:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4803:9:18", + "nodeType": "YulIdentifier", + "src": "4803:9:18" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4733:142:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4773:5:18", + "nodeType": "YulTypedName", + "src": "4773:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4783:9:18", + "nodeType": "YulTypedName", + "src": "4783:9:18", + "type": "" + } + ], + "src": "4733:142:18" + }, + { + "body": { + "nativeSrc": "4928:28:18", + "nodeType": "YulBlock", + "src": "4928:28:18", + "statements": [ + { + "nativeSrc": "4938:12:18", + "nodeType": "YulAssignment", + "src": "4938:12:18", + "value": { + "name": "value", + "nativeSrc": "4945:5:18", + "nodeType": "YulIdentifier", + "src": "4945:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4938:3:18", + "nodeType": "YulIdentifier", + "src": "4938:3:18" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "4881:75:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4914:5:18", + "nodeType": "YulTypedName", + "src": "4914:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4924:3:18", + "nodeType": "YulTypedName", + "src": "4924:3:18", + "type": "" + } + ], + "src": "4881:75:18" + }, + { + "body": { + "nativeSrc": "5038:193:18", + "nodeType": "YulBlock", + "src": "5038:193:18", + "statements": [ + { + "nativeSrc": "5048:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5048:63:18", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5103:7:18", + "nodeType": "YulIdentifier", + "src": "5103:7:18" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5072:30:18", + "nodeType": "YulIdentifier", + "src": "5072:30:18" + }, + "nativeSrc": "5072:39:18", + "nodeType": "YulFunctionCall", + "src": "5072:39:18" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5052:16:18", + "nodeType": "YulTypedName", + "src": "5052:16:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5127:4:18", + "nodeType": "YulIdentifier", + "src": "5127:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5167:4:18", + "nodeType": "YulIdentifier", + "src": "5167:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5161:5:18", + "nodeType": "YulIdentifier", + "src": "5161:5:18" + }, + "nativeSrc": "5161:11:18", + "nodeType": "YulFunctionCall", + "src": "5161:11:18" + }, + { + "name": "offset", + "nativeSrc": "5174:6:18", + "nodeType": "YulIdentifier", + "src": "5174:6:18" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5206:16:18", + "nodeType": "YulIdentifier", + "src": "5206:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5182:23:18", + "nodeType": "YulIdentifier", + "src": "5182:23:18" + }, + "nativeSrc": "5182:41:18", + "nodeType": "YulFunctionCall", + "src": "5182:41:18" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5133:27:18", + "nodeType": "YulIdentifier", + "src": "5133:27:18" + }, + "nativeSrc": "5133:91:18", + "nodeType": "YulFunctionCall", + "src": "5133:91:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5120:6:18", + "nodeType": "YulIdentifier", + "src": "5120:6:18" + }, + "nativeSrc": "5120:105:18", + "nodeType": "YulFunctionCall", + "src": "5120:105:18" + }, + "nativeSrc": "5120:105:18", + "nodeType": "YulExpressionStatement", + "src": "5120:105:18" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4962:269:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5015:4:18", + "nodeType": "YulTypedName", + "src": "5015:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5021:6:18", + "nodeType": "YulTypedName", + "src": "5021:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5029:7:18", + "nodeType": "YulTypedName", + "src": "5029:7:18", + "type": "" + } + ], + "src": "4962:269:18" + }, + { + "body": { + "nativeSrc": "5286:24:18", + "nodeType": "YulBlock", + "src": "5286:24:18", + "statements": [ + { + "nativeSrc": "5296:8:18", + "nodeType": "YulAssignment", + "src": "5296:8:18", + "value": { + "kind": "number", + "nativeSrc": "5303:1:18", + "nodeType": "YulLiteral", + "src": "5303:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5296:3:18", + "nodeType": "YulIdentifier", + "src": "5296:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5237:73:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5282:3:18", + "nodeType": "YulTypedName", + "src": "5282:3:18", + "type": "" + } + ], + "src": "5237:73:18" + }, + { + "body": { + "nativeSrc": "5369:136:18", + "nodeType": "YulBlock", + "src": "5369:136:18", + "statements": [ + { + "nativeSrc": "5379:46:18", + "nodeType": "YulVariableDeclaration", + "src": "5379:46:18", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5393:30:18", + "nodeType": "YulIdentifier", + "src": "5393:30:18" + }, + "nativeSrc": "5393:32:18", + "nodeType": "YulFunctionCall", + "src": "5393:32:18" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5383:6:18", + "nodeType": "YulTypedName", + "src": "5383:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5478:4:18", + "nodeType": "YulIdentifier", + "src": "5478:4:18" + }, + { + "name": "offset", + "nativeSrc": "5484:6:18", + "nodeType": "YulIdentifier", + "src": "5484:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "5492:6:18", + "nodeType": "YulIdentifier", + "src": "5492:6:18" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5434:43:18", + "nodeType": "YulIdentifier", + "src": "5434:43:18" + }, + "nativeSrc": "5434:65:18", + "nodeType": "YulFunctionCall", + "src": "5434:65:18" + }, + "nativeSrc": "5434:65:18", + "nodeType": "YulExpressionStatement", + "src": "5434:65:18" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5316:189:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5355:4:18", + "nodeType": "YulTypedName", + "src": "5355:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5361:6:18", + "nodeType": "YulTypedName", + "src": "5361:6:18", + "type": "" + } + ], + "src": "5316:189:18" + }, + { + "body": { + "nativeSrc": "5561:136:18", + "nodeType": "YulBlock", + "src": "5561:136:18", + "statements": [ + { + "body": { + "nativeSrc": "5628:63:18", + "nodeType": "YulBlock", + "src": "5628:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5672:5:18", + "nodeType": "YulIdentifier", + "src": "5672:5:18" + }, + { + "kind": "number", + "nativeSrc": "5679:1:18", + "nodeType": "YulLiteral", + "src": "5679:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5642:29:18", + "nodeType": "YulIdentifier", + "src": "5642:29:18" + }, + "nativeSrc": "5642:39:18", + "nodeType": "YulFunctionCall", + "src": "5642:39:18" + }, + "nativeSrc": "5642:39:18", + "nodeType": "YulExpressionStatement", + "src": "5642:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5581:5:18", + "nodeType": "YulIdentifier", + "src": "5581:5:18" + }, + { + "name": "end", + "nativeSrc": "5588:3:18", + "nodeType": "YulIdentifier", + "src": "5588:3:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5578:2:18", + "nodeType": "YulIdentifier", + "src": "5578:2:18" + }, + "nativeSrc": "5578:14:18", + "nodeType": "YulFunctionCall", + "src": "5578:14:18" + }, + "nativeSrc": "5571:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5593:26:18", + "nodeType": "YulBlock", + "src": "5593:26:18", + "statements": [ + { + "nativeSrc": "5595:22:18", + "nodeType": "YulAssignment", + "src": "5595:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5608:5:18", + "nodeType": "YulIdentifier", + "src": "5608:5:18" + }, + { + "kind": "number", + "nativeSrc": "5615:1:18", + "nodeType": "YulLiteral", + "src": "5615:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5604:3:18", + "nodeType": "YulIdentifier", + "src": "5604:3:18" + }, + "nativeSrc": "5604:13:18", + "nodeType": "YulFunctionCall", + "src": "5604:13:18" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5595:5:18", + "nodeType": "YulIdentifier", + "src": "5595:5:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5575:2:18", + "nodeType": "YulBlock", + "src": "5575:2:18", + "statements": [] + }, + "src": "5571:120:18" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5511:186:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5549:5:18", + "nodeType": "YulTypedName", + "src": "5549:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5556:3:18", + "nodeType": "YulTypedName", + "src": "5556:3:18", + "type": "" + } + ], + "src": "5511:186:18" + }, + { + "body": { + "nativeSrc": "5782:464:18", + "nodeType": "YulBlock", + "src": "5782:464:18", + "statements": [ + { + "body": { + "nativeSrc": "5808:431:18", + "nodeType": "YulBlock", + "src": "5808:431:18", + "statements": [ + { + "nativeSrc": "5822:54:18", + "nodeType": "YulVariableDeclaration", + "src": "5822:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5870:5:18", + "nodeType": "YulIdentifier", + "src": "5870:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5838:31:18", + "nodeType": "YulIdentifier", + "src": "5838:31:18" + }, + "nativeSrc": "5838:38:18", + "nodeType": "YulFunctionCall", + "src": "5838:38:18" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5826:8:18", + "nodeType": "YulTypedName", + "src": "5826:8:18", + "type": "" + } + ] + }, + { + "nativeSrc": "5889:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5889:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5912:8:18", + "nodeType": "YulIdentifier", + "src": "5912:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5940:10:18", + "nodeType": "YulIdentifier", + "src": "5940:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5922:17:18", + "nodeType": "YulIdentifier", + "src": "5922:17:18" + }, + "nativeSrc": "5922:29:18", + "nodeType": "YulFunctionCall", + "src": "5922:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5908:3:18", + "nodeType": "YulIdentifier", + "src": "5908:3:18" + }, + "nativeSrc": "5908:44:18", + "nodeType": "YulFunctionCall", + "src": "5908:44:18" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5893:11:18", + "nodeType": "YulTypedName", + "src": "5893:11:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6109:27:18", + "nodeType": "YulBlock", + "src": "6109:27:18", + "statements": [ + { + "nativeSrc": "6111:23:18", + "nodeType": "YulAssignment", + "src": "6111:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "6126:8:18", + "nodeType": "YulIdentifier", + "src": "6126:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6111:11:18", + "nodeType": "YulIdentifier", + "src": "6111:11:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6093:10:18", + "nodeType": "YulIdentifier", + "src": "6093:10:18" + }, + { + "kind": "number", + "nativeSrc": "6105:2:18", + "nodeType": "YulLiteral", + "src": "6105:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6090:2:18", + "nodeType": "YulIdentifier", + "src": "6090:2:18" + }, + "nativeSrc": "6090:18:18", + "nodeType": "YulFunctionCall", + "src": "6090:18:18" + }, + "nativeSrc": "6087:49:18", + "nodeType": "YulIf", + "src": "6087:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6178:11:18", + "nodeType": "YulIdentifier", + "src": "6178:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6195:8:18", + "nodeType": "YulIdentifier", + "src": "6195:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6223:3:18", + "nodeType": "YulIdentifier", + "src": "6223:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6205:17:18", + "nodeType": "YulIdentifier", + "src": "6205:17:18" + }, + "nativeSrc": "6205:22:18", + "nodeType": "YulFunctionCall", + "src": "6205:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6191:3:18", + "nodeType": "YulIdentifier", + "src": "6191:3:18" + }, + "nativeSrc": "6191:37:18", + "nodeType": "YulFunctionCall", + "src": "6191:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6149:28:18", + "nodeType": "YulIdentifier", + "src": "6149:28:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulFunctionCall", + "src": "6149:80:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulExpressionStatement", + "src": "6149:80:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "5799:3:18", + "nodeType": "YulIdentifier", + "src": "5799:3:18" + }, + { + "kind": "number", + "nativeSrc": "5804:2:18", + "nodeType": "YulLiteral", + "src": "5804:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5796:2:18", + "nodeType": "YulIdentifier", + "src": "5796:2:18" + }, + "nativeSrc": "5796:11:18", + "nodeType": "YulFunctionCall", + "src": "5796:11:18" + }, + "nativeSrc": "5793:446:18", + "nodeType": "YulIf", + "src": "5793:446:18" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5703:543:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "5758:5:18", + "nodeType": "YulTypedName", + "src": "5758:5:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "5765:3:18", + "nodeType": "YulTypedName", + "src": "5765:3:18", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "5770:10:18", + "nodeType": "YulTypedName", + "src": "5770:10:18", + "type": "" + } + ], + "src": "5703:543:18" + }, + { + "body": { + "nativeSrc": "6315:54:18", + "nodeType": "YulBlock", + "src": "6315:54:18", + "statements": [ + { + "nativeSrc": "6325:37:18", + "nodeType": "YulAssignment", + "src": "6325:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6350:4:18", + "nodeType": "YulIdentifier", + "src": "6350:4:18" + }, + { + "name": "value", + "nativeSrc": "6356:5:18", + "nodeType": "YulIdentifier", + "src": "6356:5:18" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "6346:3:18", + "nodeType": "YulIdentifier", + "src": "6346:3:18" + }, + "nativeSrc": "6346:16:18", + "nodeType": "YulFunctionCall", + "src": "6346:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6325:8:18", + "nodeType": "YulIdentifier", + "src": "6325:8:18" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6252:117:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6290:4:18", + "nodeType": "YulTypedName", + "src": "6290:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6296:5:18", + "nodeType": "YulTypedName", + "src": "6296:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6306:8:18", + "nodeType": "YulTypedName", + "src": "6306:8:18", + "type": "" + } + ], + "src": "6252:117:18" + }, + { + "body": { + "nativeSrc": "6426:118:18", + "nodeType": "YulBlock", + "src": "6426:118:18", + "statements": [ + { + "nativeSrc": "6436:68:18", + "nodeType": "YulVariableDeclaration", + "src": "6436:68:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:1:18", + "nodeType": "YulLiteral", + "src": "6485:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6488:5:18", + "nodeType": "YulIdentifier", + "src": "6488:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6481:3:18", + "nodeType": "YulIdentifier", + "src": "6481:3:18" + }, + "nativeSrc": "6481:13:18", + "nodeType": "YulFunctionCall", + "src": "6481:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6500:1:18", + "nodeType": "YulLiteral", + "src": "6500:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6496:3:18", + "nodeType": "YulIdentifier", + "src": "6496:3:18" + }, + "nativeSrc": "6496:6:18", + "nodeType": "YulFunctionCall", + "src": "6496:6:18" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6452:28:18", + "nodeType": "YulIdentifier", + "src": "6452:28:18" + }, + "nativeSrc": "6452:51:18", + "nodeType": "YulFunctionCall", + "src": "6452:51:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6448:3:18", + "nodeType": "YulIdentifier", + "src": "6448:3:18" + }, + "nativeSrc": "6448:56:18", + "nodeType": "YulFunctionCall", + "src": "6448:56:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6440:4:18", + "nodeType": "YulTypedName", + "src": "6440:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "6513:25:18", + "nodeType": "YulAssignment", + "src": "6513:25:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6527:4:18", + "nodeType": "YulIdentifier", + "src": "6527:4:18" + }, + { + "name": "mask", + "nativeSrc": "6533:4:18", + "nodeType": "YulIdentifier", + "src": "6533:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6523:3:18", + "nodeType": "YulIdentifier", + "src": "6523:3:18" + }, + "nativeSrc": "6523:15:18", + "nodeType": "YulFunctionCall", + "src": "6523:15:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6513:6:18", + "nodeType": "YulIdentifier", + "src": "6513:6:18" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "6375:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6403:4:18", + "nodeType": "YulTypedName", + "src": "6403:4:18", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "6409:5:18", + "nodeType": "YulTypedName", + "src": "6409:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6419:6:18", + "nodeType": "YulTypedName", + "src": "6419:6:18", + "type": "" + } + ], + "src": "6375:169:18" + }, + { + "body": { + "nativeSrc": "6630:214:18", + "nodeType": "YulBlock", + "src": "6630:214:18", + "statements": [ + { + "nativeSrc": "6763:37:18", + "nodeType": "YulAssignment", + "src": "6763:37:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6790:4:18", + "nodeType": "YulIdentifier", + "src": "6790:4:18" + }, + { + "name": "len", + "nativeSrc": "6796:3:18", + "nodeType": "YulIdentifier", + "src": "6796:3:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "6771:18:18", + "nodeType": "YulIdentifier", + "src": "6771:18:18" + }, + "nativeSrc": "6771:29:18", + "nodeType": "YulFunctionCall", + "src": "6771:29:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6763:4:18", + "nodeType": "YulIdentifier", + "src": "6763:4:18" + } + ] + }, + { + "nativeSrc": "6809:29:18", + "nodeType": "YulAssignment", + "src": "6809:29:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6820:4:18", + "nodeType": "YulIdentifier", + "src": "6820:4:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6830:1:18", + "nodeType": "YulLiteral", + "src": "6830:1:18", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6833:3:18", + "nodeType": "YulIdentifier", + "src": "6833:3:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6826:3:18", + "nodeType": "YulIdentifier", + "src": "6826:3:18" + }, + "nativeSrc": "6826:11:18", + "nodeType": "YulFunctionCall", + "src": "6826:11:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6817:2:18", + "nodeType": "YulIdentifier", + "src": "6817:2:18" + }, + "nativeSrc": "6817:21:18", + "nodeType": "YulFunctionCall", + "src": "6817:21:18" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "6809:4:18", + "nodeType": "YulIdentifier", + "src": "6809:4:18" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6549:295:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6611:4:18", + "nodeType": "YulTypedName", + "src": "6611:4:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6617:3:18", + "nodeType": "YulTypedName", + "src": "6617:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "6625:4:18", + "nodeType": "YulTypedName", + "src": "6625:4:18", + "type": "" + } + ], + "src": "6549:295:18" + }, + { + "body": { + "nativeSrc": "6941:1303:18", + "nodeType": "YulBlock", + "src": "6941:1303:18", + "statements": [ + { + "nativeSrc": "6952:51:18", + "nodeType": "YulVariableDeclaration", + "src": "6952:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6999:3:18", + "nodeType": "YulIdentifier", + "src": "6999:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6966:32:18", + "nodeType": "YulIdentifier", + "src": "6966:32:18" + }, + "nativeSrc": "6966:37:18", + "nodeType": "YulFunctionCall", + "src": "6966:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6956:6:18", + "nodeType": "YulTypedName", + "src": "6956:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7088:22:18", + "nodeType": "YulBlock", + "src": "7088:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7090:16:18", + "nodeType": "YulIdentifier", + "src": "7090:16:18" + }, + "nativeSrc": "7090:18:18", + "nodeType": "YulFunctionCall", + "src": "7090:18:18" + }, + "nativeSrc": "7090:18:18", + "nodeType": "YulExpressionStatement", + "src": "7090:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7060:6:18", + "nodeType": "YulIdentifier", + "src": "7060:6:18" + }, + { + "kind": "number", + "nativeSrc": "7068:18:18", + "nodeType": "YulLiteral", + "src": "7068:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7057:2:18", + "nodeType": "YulIdentifier", + "src": "7057:2:18" + }, + "nativeSrc": "7057:30:18", + "nodeType": "YulFunctionCall", + "src": "7057:30:18" + }, + "nativeSrc": "7054:56:18", + "nodeType": "YulIf", + "src": "7054:56:18" + }, + { + "nativeSrc": "7120:52:18", + "nodeType": "YulVariableDeclaration", + "src": "7120:52:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7166:4:18", + "nodeType": "YulIdentifier", + "src": "7166:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7160:5:18", + "nodeType": "YulIdentifier", + "src": "7160:5:18" + }, + "nativeSrc": "7160:11:18", + "nodeType": "YulFunctionCall", + "src": "7160:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7134:25:18", + "nodeType": "YulIdentifier", + "src": "7134:25:18" + }, + "nativeSrc": "7134:38:18", + "nodeType": "YulFunctionCall", + "src": "7134:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7124:6:18", + "nodeType": "YulTypedName", + "src": "7124:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7265:4:18", + "nodeType": "YulIdentifier", + "src": "7265:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "7271:6:18", + "nodeType": "YulIdentifier", + "src": "7271:6:18" + }, + { + "name": "newLen", + "nativeSrc": "7279:6:18", + "nodeType": "YulIdentifier", + "src": "7279:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7219:45:18", + "nodeType": "YulIdentifier", + "src": "7219:45:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulFunctionCall", + "src": "7219:67:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulExpressionStatement", + "src": "7219:67:18" + }, + { + "nativeSrc": "7296:18:18", + "nodeType": "YulVariableDeclaration", + "src": "7296:18:18", + "value": { + "kind": "number", + "nativeSrc": "7313:1:18", + "nodeType": "YulLiteral", + "src": "7313:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7300:9:18", + "nodeType": "YulTypedName", + "src": "7300:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7324:17:18", + "nodeType": "YulAssignment", + "src": "7324:17:18", + "value": { + "kind": "number", + "nativeSrc": "7337:4:18", + "nodeType": "YulLiteral", + "src": "7337:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7324:9:18", + "nodeType": "YulIdentifier", + "src": "7324:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7388:611:18", + "nodeType": "YulBlock", + "src": "7388:611:18", + "statements": [ + { + "nativeSrc": "7402:37:18", + "nodeType": "YulVariableDeclaration", + "src": "7402:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7421:6:18", + "nodeType": "YulIdentifier", + "src": "7421:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7433:4:18", + "nodeType": "YulLiteral", + "src": "7433:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7429:3:18", + "nodeType": "YulIdentifier", + "src": "7429:3:18" + }, + "nativeSrc": "7429:9:18", + "nodeType": "YulFunctionCall", + "src": "7429:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7417:3:18", + "nodeType": "YulIdentifier", + "src": "7417:3:18" + }, + "nativeSrc": "7417:22:18", + "nodeType": "YulFunctionCall", + "src": "7417:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7406:7:18", + "nodeType": "YulTypedName", + "src": "7406:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7453:51:18", + "nodeType": "YulVariableDeclaration", + "src": "7453:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7499:4:18", + "nodeType": "YulIdentifier", + "src": "7499:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7467:31:18", + "nodeType": "YulIdentifier", + "src": "7467:31:18" + }, + "nativeSrc": "7467:37:18", + "nodeType": "YulFunctionCall", + "src": "7467:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7457:6:18", + "nodeType": "YulTypedName", + "src": "7457:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7517:10:18", + "nodeType": "YulVariableDeclaration", + "src": "7517:10:18", + "value": { + "kind": "number", + "nativeSrc": "7526:1:18", + "nodeType": "YulLiteral", + "src": "7526:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7521:1:18", + "nodeType": "YulTypedName", + "src": "7521:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7585:163:18", + "nodeType": "YulBlock", + "src": "7585:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7610:6:18", + "nodeType": "YulIdentifier", + "src": "7610:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7628:3:18", + "nodeType": "YulIdentifier", + "src": "7628:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7633:9:18", + "nodeType": "YulIdentifier", + "src": "7633:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7624:3:18", + "nodeType": "YulIdentifier", + "src": "7624:3:18" + }, + "nativeSrc": "7624:19:18", + "nodeType": "YulFunctionCall", + "src": "7624:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7618:5:18", + "nodeType": "YulIdentifier", + "src": "7618:5:18" + }, + "nativeSrc": "7618:26:18", + "nodeType": "YulFunctionCall", + "src": "7618:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7603:6:18", + "nodeType": "YulIdentifier", + "src": "7603:6:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulFunctionCall", + "src": "7603:42:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulExpressionStatement", + "src": "7603:42:18" + }, + { + "nativeSrc": "7662:24:18", + "nodeType": "YulAssignment", + "src": "7662:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7676:6:18", + "nodeType": "YulIdentifier", + "src": "7676:6:18" + }, + { + "kind": "number", + "nativeSrc": "7684:1:18", + "nodeType": "YulLiteral", + "src": "7684:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7672:3:18", + "nodeType": "YulIdentifier", + "src": "7672:3:18" + }, + "nativeSrc": "7672:14:18", + "nodeType": "YulFunctionCall", + "src": "7672:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7662:6:18", + "nodeType": "YulIdentifier", + "src": "7662:6:18" + } + ] + }, + { + "nativeSrc": "7703:31:18", + "nodeType": "YulAssignment", + "src": "7703:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7720:9:18", + "nodeType": "YulIdentifier", + "src": "7720:9:18" + }, + { + "kind": "number", + "nativeSrc": "7731:2:18", + "nodeType": "YulLiteral", + "src": "7731:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "nativeSrc": "7716:18:18", + "nodeType": "YulFunctionCall", + "src": "7716:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7703:9:18", + "nodeType": "YulIdentifier", + "src": "7703:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7551:1:18", + "nodeType": "YulIdentifier", + "src": "7551:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "7554:7:18", + "nodeType": "YulIdentifier", + "src": "7554:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7548:2:18", + "nodeType": "YulIdentifier", + "src": "7548:2:18" + }, + "nativeSrc": "7548:14:18", + "nodeType": "YulFunctionCall", + "src": "7548:14:18" + }, + "nativeSrc": "7540:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7563:21:18", + "nodeType": "YulBlock", + "src": "7563:21:18", + "statements": [ + { + "nativeSrc": "7565:17:18", + "nodeType": "YulAssignment", + "src": "7565:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7574:1:18", + "nodeType": "YulIdentifier", + "src": "7574:1:18" + }, + { + "kind": "number", + "nativeSrc": "7577:4:18", + "nodeType": "YulLiteral", + "src": "7577:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7570:3:18", + "nodeType": "YulIdentifier", + "src": "7570:3:18" + }, + "nativeSrc": "7570:12:18", + "nodeType": "YulFunctionCall", + "src": "7570:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7565:1:18", + "nodeType": "YulIdentifier", + "src": "7565:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7544:3:18", + "nodeType": "YulBlock", + "src": "7544:3:18", + "statements": [] + }, + "src": "7540:208:18" + }, + { + "body": { + "nativeSrc": "7784:156:18", + "nodeType": "YulBlock", + "src": "7784:156:18", + "statements": [ + { + "nativeSrc": "7802:43:18", + "nodeType": "YulVariableDeclaration", + "src": "7802:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7829:3:18", + "nodeType": "YulIdentifier", + "src": "7829:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7834:9:18", + "nodeType": "YulIdentifier", + "src": "7834:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7825:3:18", + "nodeType": "YulIdentifier", + "src": "7825:3:18" + }, + "nativeSrc": "7825:19:18", + "nodeType": "YulFunctionCall", + "src": "7825:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7819:5:18", + "nodeType": "YulIdentifier", + "src": "7819:5:18" + }, + "nativeSrc": "7819:26:18", + "nodeType": "YulFunctionCall", + "src": "7819:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7806:9:18", + "nodeType": "YulTypedName", + "src": "7806:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7869:6:18", + "nodeType": "YulIdentifier", + "src": "7869:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7896:9:18", + "nodeType": "YulIdentifier", + "src": "7896:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7911:6:18", + "nodeType": "YulIdentifier", + "src": "7911:6:18" + }, + { + "kind": "number", + "nativeSrc": "7919:4:18", + "nodeType": "YulLiteral", + "src": "7919:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7907:3:18", + "nodeType": "YulIdentifier", + "src": "7907:3:18" + }, + "nativeSrc": "7907:17:18", + "nodeType": "YulFunctionCall", + "src": "7907:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7877:18:18", + "nodeType": "YulIdentifier", + "src": "7877:18:18" + }, + "nativeSrc": "7877:48:18", + "nodeType": "YulFunctionCall", + "src": "7877:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7862:6:18", + "nodeType": "YulIdentifier", + "src": "7862:6:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulFunctionCall", + "src": "7862:64:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulExpressionStatement", + "src": "7862:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7767:7:18", + "nodeType": "YulIdentifier", + "src": "7767:7:18" + }, + { + "name": "newLen", + "nativeSrc": "7776:6:18", + "nodeType": "YulIdentifier", + "src": "7776:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7764:2:18", + "nodeType": "YulIdentifier", + "src": "7764:2:18" + }, + "nativeSrc": "7764:19:18", + "nodeType": "YulFunctionCall", + "src": "7764:19:18" + }, + "nativeSrc": "7761:179:18", + "nodeType": "YulIf", + "src": "7761:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7960:4:18", + "nodeType": "YulIdentifier", + "src": "7960:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7974:6:18", + "nodeType": "YulIdentifier", + "src": "7974:6:18" + }, + { + "kind": "number", + "nativeSrc": "7982:1:18", + "nodeType": "YulLiteral", + "src": "7982:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7970:3:18", + "nodeType": "YulIdentifier", + "src": "7970:3:18" + }, + "nativeSrc": "7970:14:18", + "nodeType": "YulFunctionCall", + "src": "7970:14:18" + }, + { + "kind": "number", + "nativeSrc": "7986:1:18", + "nodeType": "YulLiteral", + "src": "7986:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:18", + "nodeType": "YulIdentifier", + "src": "7966:3:18" + }, + "nativeSrc": "7966:22:18", + "nodeType": "YulFunctionCall", + "src": "7966:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7953:6:18", + "nodeType": "YulIdentifier", + "src": "7953:6:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulFunctionCall", + "src": "7953:36:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulExpressionStatement", + "src": "7953:36:18" + } + ] + }, + "nativeSrc": "7381:618:18", + "nodeType": "YulCase", + "src": "7381:618:18", + "value": { + "kind": "number", + "nativeSrc": "7386:1:18", + "nodeType": "YulLiteral", + "src": "7386:1:18", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8016:222:18", + "nodeType": "YulBlock", + "src": "8016:222:18", + "statements": [ + { + "nativeSrc": "8030:14:18", + "nodeType": "YulVariableDeclaration", + "src": "8030:14:18", + "value": { + "kind": "number", + "nativeSrc": "8043:1:18", + "nodeType": "YulLiteral", + "src": "8043:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8034:5:18", + "nodeType": "YulTypedName", + "src": "8034:5:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8067:67:18", + "nodeType": "YulBlock", + "src": "8067:67:18", + "statements": [ + { + "nativeSrc": "8085:35:18", + "nodeType": "YulAssignment", + "src": "8085:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8104:3:18", + "nodeType": "YulIdentifier", + "src": "8104:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "8109:9:18", + "nodeType": "YulIdentifier", + "src": "8109:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8100:3:18", + "nodeType": "YulIdentifier", + "src": "8100:3:18" + }, + "nativeSrc": "8100:19:18", + "nodeType": "YulFunctionCall", + "src": "8100:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8094:5:18", + "nodeType": "YulIdentifier", + "src": "8094:5:18" + }, + "nativeSrc": "8094:26:18", + "nodeType": "YulFunctionCall", + "src": "8094:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8085:5:18", + "nodeType": "YulIdentifier", + "src": "8085:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8060:6:18", + "nodeType": "YulIdentifier", + "src": "8060:6:18" + }, + "nativeSrc": "8057:77:18", + "nodeType": "YulIf", + "src": "8057:77:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8154:4:18", + "nodeType": "YulIdentifier", + "src": "8154:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8213:5:18", + "nodeType": "YulIdentifier", + "src": "8213:5:18" + }, + { + "name": "newLen", + "nativeSrc": "8220:6:18", + "nodeType": "YulIdentifier", + "src": "8220:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8160:52:18", + "nodeType": "YulIdentifier", + "src": "8160:52:18" + }, + "nativeSrc": "8160:67:18", + "nodeType": "YulFunctionCall", + "src": "8160:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8147:6:18", + "nodeType": "YulIdentifier", + "src": "8147:6:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulFunctionCall", + "src": "8147:81:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulExpressionStatement", + "src": "8147:81:18" + } + ] + }, + "nativeSrc": "8008:230:18", + "nodeType": "YulCase", + "src": "8008:230:18", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7361:6:18", + "nodeType": "YulIdentifier", + "src": "7361:6:18" + }, + { + "kind": "number", + "nativeSrc": "7369:2:18", + "nodeType": "YulLiteral", + "src": "7369:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7358:2:18", + "nodeType": "YulIdentifier", + "src": "7358:2:18" + }, + "nativeSrc": "7358:14:18", + "nodeType": "YulFunctionCall", + "src": "7358:14:18" + }, + "nativeSrc": "7351:887:18", + "nodeType": "YulSwitch", + "src": "7351:887:18" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6849:1395:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "6930:4:18", + "nodeType": "YulTypedName", + "src": "6930:4:18", + "type": "" + }, + { + "name": "src", + "nativeSrc": "6936:3:18", + "nodeType": "YulTypedName", + "src": "6936:3:18", + "type": "" + } + ], + "src": "6849:1395:18" + }, + { + "body": { + "nativeSrc": "8346:73:18", + "nodeType": "YulBlock", + "src": "8346:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8363:3:18", + "nodeType": "YulIdentifier", + "src": "8363:3:18" + }, + { + "name": "length", + "nativeSrc": "8368:6:18", + "nodeType": "YulIdentifier", + "src": "8368:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8356:6:18", + "nodeType": "YulIdentifier", + "src": "8356:6:18" + }, + "nativeSrc": "8356:19:18", + "nodeType": "YulFunctionCall", + "src": "8356:19:18" + }, + "nativeSrc": "8356:19:18", + "nodeType": "YulExpressionStatement", + "src": "8356:19:18" + }, + { + "nativeSrc": "8384:29:18", + "nodeType": "YulAssignment", + "src": "8384:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8403:3:18", + "nodeType": "YulIdentifier", + "src": "8403:3:18" + }, + { + "kind": "number", + "nativeSrc": "8408:4:18", + "nodeType": "YulLiteral", + "src": "8408:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8399:3:18", + "nodeType": "YulIdentifier", + "src": "8399:3:18" + }, + "nativeSrc": "8399:14:18", + "nodeType": "YulFunctionCall", + "src": "8399:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "8384:11:18", + "nodeType": "YulIdentifier", + "src": "8384:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8250:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8318:3:18", + "nodeType": "YulTypedName", + "src": "8318:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8323:6:18", + "nodeType": "YulTypedName", + "src": "8323:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "8334:11:18", + "nodeType": "YulTypedName", + "src": "8334:11:18", + "type": "" + } + ], + "src": "8250:169:18" + }, + { + "body": { + "nativeSrc": "8531:63:18", + "nodeType": "YulBlock", + "src": "8531:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8553:6:18", + "nodeType": "YulIdentifier", + "src": "8553:6:18" + }, + { + "kind": "number", + "nativeSrc": "8561:1:18", + "nodeType": "YulLiteral", + "src": "8561:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8549:3:18", + "nodeType": "YulIdentifier", + "src": "8549:3:18" + }, + "nativeSrc": "8549:14:18", + "nodeType": "YulFunctionCall", + "src": "8549:14:18" + }, + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "8565:21:18", + "nodeType": "YulLiteral", + "src": "8565:21:18", + "type": "", + "value": "URI cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8542:6:18", + "nodeType": "YulIdentifier", + "src": "8542:6:18" + }, + "nativeSrc": "8542:45:18", + "nodeType": "YulFunctionCall", + "src": "8542:45:18" + }, + "nativeSrc": "8542:45:18", + "nodeType": "YulExpressionStatement", + "src": "8542:45:18" + } + ] + }, + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8425:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "8523:6:18", + "nodeType": "YulTypedName", + "src": "8523:6:18", + "type": "" + } + ], + "src": "8425:169:18" + }, + { + "body": { + "nativeSrc": "8746:220:18", + "nodeType": "YulBlock", + "src": "8746:220:18", + "statements": [ + { + "nativeSrc": "8756:74:18", + "nodeType": "YulAssignment", + "src": "8756:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8822:3:18", + "nodeType": "YulIdentifier", + "src": "8822:3:18" + }, + { + "kind": "number", + "nativeSrc": "8827:2:18", + "nodeType": "YulLiteral", + "src": "8827:2:18", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8763:58:18", + "nodeType": "YulIdentifier", + "src": "8763:58:18" + }, + "nativeSrc": "8763:67:18", + "nodeType": "YulFunctionCall", + "src": "8763:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8928:3:18", + "nodeType": "YulIdentifier", + "src": "8928:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8839:88:18", + "nodeType": "YulIdentifier", + "src": "8839:88:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulFunctionCall", + "src": "8839:93:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulExpressionStatement", + "src": "8839:93:18" + }, + { + "nativeSrc": "8941:19:18", + "nodeType": "YulAssignment", + "src": "8941:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8952:3:18", + "nodeType": "YulIdentifier", + "src": "8952:3:18" + }, + { + "kind": "number", + "nativeSrc": "8957:2:18", + "nodeType": "YulLiteral", + "src": "8957:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8948:3:18", + "nodeType": "YulIdentifier", + "src": "8948:3:18" + }, + "nativeSrc": "8948:12:18", + "nodeType": "YulFunctionCall", + "src": "8948:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8941:3:18", + "nodeType": "YulIdentifier", + "src": "8941:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8600:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8734:3:18", + "nodeType": "YulTypedName", + "src": "8734:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8742:3:18", + "nodeType": "YulTypedName", + "src": "8742:3:18", + "type": "" + } + ], + "src": "8600:366:18" + }, + { + "body": { + "nativeSrc": "9143:248:18", + "nodeType": "YulBlock", + "src": "9143:248:18", + "statements": [ + { + "nativeSrc": "9153:26:18", + "nodeType": "YulAssignment", + "src": "9153:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9165:9:18", + "nodeType": "YulIdentifier", + "src": "9165:9:18" + }, + { + "kind": "number", + "nativeSrc": "9176:2:18", + "nodeType": "YulLiteral", + "src": "9176:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9161:3:18", + "nodeType": "YulIdentifier", + "src": "9161:3:18" + }, + "nativeSrc": "9161:18:18", + "nodeType": "YulFunctionCall", + "src": "9161:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9153:4:18", + "nodeType": "YulIdentifier", + "src": "9153:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9200:9:18", + "nodeType": "YulIdentifier", + "src": "9200:9:18" + }, + { + "kind": "number", + "nativeSrc": "9211:1:18", + "nodeType": "YulLiteral", + "src": "9211:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9196:3:18", + "nodeType": "YulIdentifier", + "src": "9196:3:18" + }, + "nativeSrc": "9196:17:18", + "nodeType": "YulFunctionCall", + "src": "9196:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9219:4:18", + "nodeType": "YulIdentifier", + "src": "9219:4:18" + }, + { + "name": "headStart", + "nativeSrc": "9225:9:18", + "nodeType": "YulIdentifier", + "src": "9225:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9215:3:18", + "nodeType": "YulIdentifier", + "src": "9215:3:18" + }, + "nativeSrc": "9215:20:18", + "nodeType": "YulFunctionCall", + "src": "9215:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9189:6:18", + "nodeType": "YulIdentifier", + "src": "9189:6:18" + }, + "nativeSrc": "9189:47:18", + "nodeType": "YulFunctionCall", + "src": "9189:47:18" + }, + "nativeSrc": "9189:47:18", + "nodeType": "YulExpressionStatement", + "src": "9189:47:18" + }, + { + "nativeSrc": "9245:139:18", + "nodeType": "YulAssignment", + "src": "9245:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9379:4:18", + "nodeType": "YulIdentifier", + "src": "9379:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9253:124:18", + "nodeType": "YulIdentifier", + "src": "9253:124:18" + }, + "nativeSrc": "9253:131:18", + "nodeType": "YulFunctionCall", + "src": "9253:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9245:4:18", + "nodeType": "YulIdentifier", + "src": "9245:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8972:419:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9123:9:18", + "nodeType": "YulTypedName", + "src": "9123:9:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9138:4:18", + "nodeType": "YulTypedName", + "src": "9138:4:18", + "type": "" + } + ], + "src": "8972:419:18" + } + ] + }, + "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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\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 mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\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_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__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_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 18, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051613e29380380613e29833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613696806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a6004803603810190610145919061216b565b6103f2565b60405161015791906121ba565b60405180910390f35b61017a6004803603810190610175919061222d565b61044c565b6040516101879190612275565b60405180910390f35b6101aa60048036038101906101a59190612290565b61048c565b6040516101b7919061234d565b60405180910390f35b6101da60048036038101906101d591906123a5565b610520565b6040516101e791906123e1565b60405180910390f35b61020a600480360381019061020591906125f9565b610540565b005b610226600480360381019061022191906126c8565b6105e8565b005b610242600480360381019061023d91906126c8565b61060a565b005b61025e600480360381019061025991906127cb565b610685565b60405161026b9190612901565b60405180910390f35b61027c61078e565b60405161028991906121ba565b60405180910390f35b6102ac60048036038101906102a79190612923565b610798565b005b6102c860048036038101906102c39190612a47565b610856565b6040516102d5919061234d565b60405180910390f35b6102f860048036038101906102f391906126c8565b610898565b6040516103059190612275565b60405180910390f35b61032860048036038101906103239190612aa3565b610903565b005b610332610967565b60405161033f91906123e1565b60405180910390f35b610362600480360381019061035d9190612b18565b61096e565b005b61036c610984565b005b610388600480360381019061038391906126c8565b610a01565b005b6103a4600480360381019061039f9190612b58565b610a23565b6040516103b19190612275565b60405180910390f35b6103d460048036038101906103cf9190612b98565b610ab7565b005b6103f060048036038101906103eb9190612c2f565b610b5f565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c41565b156104825761047b82610c8e565b9050610487565b600090505b919050565b60606002805461049b90612cb1565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cb1565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a23565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612cf1565b60405180910390fd5b6105e08686868686610d10565b505050505050565b6105f182610520565b6105fa81610e08565b6106048383610e1c565b50505050565b610612610d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f0e565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d1a565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612401565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761100190919063ffffffff16565b610754838761101590919063ffffffff16565b6103f2565b82828151811061076c5761076b612d43565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a281611029565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612d72565b60405180910390fd5b6107ff8585600185611072565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612de0565b60405180910390a35050505050565b60608261086281611029565b600561086d8561110b565b8460405160200161088093929190612fb3565b60405160208183030381529060405291505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61091081610e08565b610919826111d9565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161094b929190613089565b60405180910390a18160059081610962919061324d565b505050565b6000801b81565b610980610979610d08565b8383611220565b5050565b600060045490506109a73382600160405180602001604052806000815250611072565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36001816109f8919061334e565b60048190555050565b610a0a82610520565b610a1381610e08565b610a1d8383610f0e565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ac1610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b065750610b048682610a23565b155b15610b4a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b41929190612cf1565b60405180910390fd5b610b578686868686611390565b505050505050565b81610b6981611029565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610bdd5781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610bd4929190612d72565b60405180910390fd5b610be98686600161149b565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c319190612de0565b60405180910390a3505050505050565b6000610c6d827f01ffc9a700000000000000000000000000000000000000000000000000000000611542565b8015610c875750610c858263ffffffff60e01b611542565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d015750610d00826115e1565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d825760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d799190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610df45760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610deb9190613382565b60405180910390fd5b610e0185858585856116c3565b5050505050565b610e1981610e14610d08565b611775565b50565b6000610e288383610898565b610f035760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ea0610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f08565b600090505b92915050565b6000610f1a8383610898565b15610ff65760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f93610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610ffb565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600454811061106f57806040517fc80a970c00000000000000000000000000000000000000000000000000000000815260040161106691906121ba565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110e45760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016110db9190613382565b60405180910390fd5b6000806110f185856117c6565b915091506111036000878484876116c3565b505050505050565b60606000600161111a846117f6565b01905060008167ffffffffffffffff81111561113957611138612401565b5b6040519080825280601f01601f19166020018201604052801561116b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156111ce578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111c2576111c161339d565b5b04945060008503611179575b819350505050919050565b600081510361121d576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161121490613418565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112925760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112899190613382565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113839190612275565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114025760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f99190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114745760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161146b9190613382565b60405180910390fd5b60008061148185856117c6565b9150915061149287878484876116c3565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150d5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016115049190613382565b60405180910390fd5b60008061151a84846117c6565b9150915061153b8560008484604051806020016040528060008152506116c3565b5050505050565b600080826040516024016115569190613447565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d915060005190508280156115c9575060208210155b80156115d55750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116ac57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116bc57506116bb82611949565b5b9050919050565b6116cf858585856119b3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461176e57600061170d610d08565b9050600184510361175d57600061172e60008661101590919063ffffffff16565b9050600061174660008661101590919063ffffffff16565b9050611756838989858589611d5b565b505061176c565b61176b818787878787611f0f565b5b505b5050505050565b61177f8282610898565b6117c25780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117b9929190613462565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611854577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161184a5761184961339d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611891576d04ee2d6d415b85acef810000000083816118875761188661339d565b5b0492506020810190505b662386f26fc1000083106118c057662386f26fc1000083816118b6576118b561339d565b5b0492506010810190505b6305f5e10083106118e9576305f5e10083816118df576118de61339d565b5b0492506008810190505b612710831061190e5761271083816119045761190361339d565b5b0492506004810190505b6064831061193157606483816119275761192661339d565b5b0492506002810190505b600a8310611940576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b80518251146119fd57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016119f4929190612d1a565b60405180910390fd5b6000611a07610d08565b905060005b8351811015611c16576000611a2a828661101590919063ffffffff16565b90506000611a41838661101590919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b6e57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b1657888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b0d949392919061348b565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c09578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c01919061334e565b925050819055505b5050806001019050611a0c565b506001835103611cd5576000611c3660008561101590919063ffffffff16565b90506000611c4e60008561101590919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611cc6929190612d1a565b60405180910390a45050611d54565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d4b9291906134d0565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f07578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611dbc95949392919061355c565b6020604051808303816000875af1925050508015611df857506040513d601f19601f82011682018060405250810190611df591906135cb565b60015b611e7c573d8060008114611e28576040519150601f19603f3d011682016040523d82523d6000602084013e611e2d565b606091505b506000815103611e7457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e6b9190613382565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611efc9190613382565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156120bb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f709594939291906135f8565b6020604051808303816000875af1925050508015611fac57506040513d601f19601f82011682018060405250810190611fa991906135cb565b60015b612030573d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50600081510361202857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161201f9190613382565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120b957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120b09190613382565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612102826120d7565b9050919050565b612112816120f7565b811461211d57600080fd5b50565b60008135905061212f81612109565b92915050565b6000819050919050565b61214881612135565b811461215357600080fd5b50565b6000813590506121658161213f565b92915050565b60008060408385031215612182576121816120cd565b5b600061219085828601612120565b92505060206121a185828601612156565b9150509250929050565b6121b481612135565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61220a816121d5565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600060208284031215612243576122426120cd565b5b600061225184828501612218565b91505092915050565b60008115159050919050565b61226f8161225a565b82525050565b600060208201905061228a6000830184612266565b92915050565b6000602082840312156122a6576122a56120cd565b5b60006122b484828501612156565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122f75780820151818401526020810190506122dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061231f826122bd565b61232981856122c8565b93506123398185602086016122d9565b61234281612303565b840191505092915050565b600060208201905081810360008301526123678184612314565b905092915050565b6000819050919050565b6123828161236f565b811461238d57600080fd5b50565b60008135905061239f81612379565b92915050565b6000602082840312156123bb576123ba6120cd565b5b60006123c984828501612390565b91505092915050565b6123db8161236f565b82525050565b60006020820190506123f660008301846123d2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61243982612303565b810181811067ffffffffffffffff8211171561245857612457612401565b5b80604052505050565b600061246b6120c3565b90506124778282612430565b919050565b600067ffffffffffffffff82111561249757612496612401565b5b602082029050602081019050919050565b600080fd5b60006124c06124bb8461247c565b612461565b905080838252602082019050602084028301858111156124e3576124e26124a8565b5b835b8181101561250c57806124f88882612156565b8452602084019350506020810190506124e5565b5050509392505050565b600082601f83011261252b5761252a6123fc565b5b813561253b8482602086016124ad565b91505092915050565b600080fd5b600067ffffffffffffffff82111561256457612563612401565b5b61256d82612303565b9050602081019050919050565b82818337600083830152505050565b600061259c61259784612549565b612461565b9050828152602081018484840111156125b8576125b7612544565b5b6125c384828561257a565b509392505050565b600082601f8301126125e0576125df6123fc565b5b81356125f0848260208601612589565b91505092915050565b600080600080600060a08688031215612615576126146120cd565b5b600061262388828901612120565b955050602061263488828901612120565b945050604086013567ffffffffffffffff811115612655576126546120d2565b5b61266188828901612516565b935050606086013567ffffffffffffffff811115612682576126816120d2565b5b61268e88828901612516565b925050608086013567ffffffffffffffff8111156126af576126ae6120d2565b5b6126bb888289016125cb565b9150509295509295909350565b600080604083850312156126df576126de6120cd565b5b60006126ed85828601612390565b92505060206126fe85828601612120565b9150509250929050565b600067ffffffffffffffff82111561272357612722612401565b5b602082029050602081019050919050565b600061274761274284612708565b612461565b9050808382526020820190506020840283018581111561276a576127696124a8565b5b835b81811015612793578061277f8882612120565b84526020840193505060208101905061276c565b5050509392505050565b600082601f8301126127b2576127b16123fc565b5b81356127c2848260208601612734565b91505092915050565b600080604083850312156127e2576127e16120cd565b5b600083013567ffffffffffffffff811115612800576127ff6120d2565b5b61280c8582860161279d565b925050602083013567ffffffffffffffff81111561282d5761282c6120d2565b5b61283985828601612516565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61287881612135565b82525050565b600061288a838361286f565b60208301905092915050565b6000602082019050919050565b60006128ae82612843565b6128b8818561284e565b93506128c38361285f565b8060005b838110156128f45781516128db888261287e565b97506128e683612896565b9250506001810190506128c7565b5085935050505092915050565b6000602082019050818103600083015261291b81846128a3565b905092915050565b6000806000806080858703121561293d5761293c6120cd565b5b600061294b87828801612120565b945050602061295c87828801612156565b935050604061296d87828801612156565b925050606085013567ffffffffffffffff81111561298e5761298d6120d2565b5b61299a878288016125cb565b91505092959194509250565b600067ffffffffffffffff8211156129c1576129c0612401565b5b6129ca82612303565b9050602081019050919050565b60006129ea6129e5846129a6565b612461565b905082815260208101848484011115612a0657612a05612544565b5b612a1184828561257a565b509392505050565b600082601f830112612a2e57612a2d6123fc565b5b8135612a3e8482602086016129d7565b91505092915050565b60008060408385031215612a5e57612a5d6120cd565b5b6000612a6c85828601612156565b925050602083013567ffffffffffffffff811115612a8d57612a8c6120d2565b5b612a9985828601612a19565b9150509250929050565b600060208284031215612ab957612ab86120cd565b5b600082013567ffffffffffffffff811115612ad757612ad66120d2565b5b612ae384828501612a19565b91505092915050565b612af58161225a565b8114612b0057600080fd5b50565b600081359050612b1281612aec565b92915050565b60008060408385031215612b2f57612b2e6120cd565b5b6000612b3d85828601612120565b9250506020612b4e85828601612b03565b9150509250929050565b60008060408385031215612b6f57612b6e6120cd565b5b6000612b7d85828601612120565b9250506020612b8e85828601612120565b9150509250929050565b600080600080600060a08688031215612bb457612bb36120cd565b5b6000612bc288828901612120565b9550506020612bd388828901612120565b9450506040612be488828901612156565b9350506060612bf588828901612156565b925050608086013567ffffffffffffffff811115612c1657612c156120d2565b5b612c22888289016125cb565b9150509295509295909350565b600080600060608486031215612c4857612c476120cd565b5b6000612c5686828701612120565b9350506020612c6786828701612156565b9250506040612c7886828701612156565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612cc957607f821691505b602082108103612cdc57612cdb612c82565b5b50919050565b612ceb816120f7565b82525050565b6000604082019050612d066000830185612ce2565b612d136020830184612ce2565b9392505050565b6000604082019050612d2f60008301856121ab565b612d3c60208301846121ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612d876000830185612ce2565b612d9460208301846121ab565b9392505050565b6000819050919050565b6000819050919050565b6000612dca612dc5612dc084612d9b565b612da5565b612135565b9050919050565b612dda81612daf565b82525050565b6000602082019050612df56000830184612dd1565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612e2881612cb1565b612e328186612dfb565b94506001821660008114612e4d5760018114612e6257612e95565b60ff1983168652811515820286019350612e95565b612e6b85612e06565b60005b83811015612e8d57815481890152600182019150602081019050612e6e565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612ed4600c83612dfb565b9150612edf82612e9e565b600c82019050919050565b6000612ef5826122bd565b612eff8185612dfb565b9350612f0f8185602086016122d9565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f51600183612dfb565b9150612f5c82612f1b565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b6000612f9d601183612dfb565b9150612fa882612f67565b601182019050919050565b6000612fbf8286612e1b565b9150612fca82612ec7565b9150612fd68285612eea565b9150612fe182612f44565b9150612fed8284612eea565b9150612ff882612f90565b9150819050949350505050565b6000815461301281612cb1565b61301c81866122c8565b94506001821660008114613037576001811461304d57613080565b60ff198316865281151560200286019350613080565b61305685612e06565b60005b8381101561307857815481890152600182019150602081019050613059565b808801955050505b50505092915050565b600060408201905081810360008301526130a38185613005565b905081810360208301526130b78184612314565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261310d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130d0565b61311786836130d0565b95508019841693508086168417925050509392505050565b600061314a61314561314084612135565b612da5565b612135565b9050919050565b6000819050919050565b6131648361312f565b61317861317082613151565b8484546130dd565b825550505050565b600090565b61318d613180565b61319881848461315b565b505050565b5b818110156131bc576131b1600082613185565b60018101905061319e565b5050565b601f821115613201576131d281612e06565b6131db846130c0565b810160208510156131ea578190505b6131fe6131f6856130c0565b83018261319d565b50505b505050565b600082821c905092915050565b600061322460001984600802613206565b1980831691505092915050565b600061323d8383613213565b9150826002028217905092915050565b613256826122bd565b67ffffffffffffffff81111561326f5761326e612401565b5b6132798254612cb1565b6132848282856131c0565b600060209050601f8311600181146132b757600084156132a5578287015190505b6132af8582613231565b865550613317565b601f1984166132c586612e06565b60005b828110156132ed578489015182556001820191506020850194506020810190506132c8565b8683101561330a5784890151613306601f891682613213565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061335982612135565b915061336483612135565b925082820190508082111561337c5761337b61331f565b5b92915050565b60006020820190506133976000830184612ce2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134026013836122c8565b915061340d826133cc565b602082019050919050565b60006020820190508181036000830152613431816133f5565b9050919050565b613441816121d5565b82525050565b600060208201905061345c6000830184613438565b92915050565b60006040820190506134776000830185612ce2565b61348460208301846123d2565b9392505050565b60006080820190506134a06000830187612ce2565b6134ad60208301866121ab565b6134ba60408301856121ab565b6134c760608301846121ab565b95945050505050565b600060408201905081810360008301526134ea81856128a3565b905081810360208301526134fe81846128a3565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061352e82613507565b6135388185613512565b93506135488185602086016122d9565b61355181612303565b840191505092915050565b600060a0820190506135716000830188612ce2565b61357e6020830187612ce2565b61358b60408301866121ab565b61359860608301856121ab565b81810360808301526135aa8184613523565b90509695505050505050565b6000815190506135c581612201565b92915050565b6000602082840312156135e1576135e06120cd565b5b60006135ef848285016135b6565b91505092915050565b600060a08201905061360d6000830188612ce2565b61361a6020830187612ce2565b818103604083015261362c81866128a3565b9050818103606083015261364081856128a3565b905081810360808301526136548184613523565b9050969550505050505056fea2646970667358221220f89062492c0a90a3bf6e0872ad5b5976f927f8e47cd140986515b878c9bf129664736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3E29 CODESIZE SUB DUP1 PUSH2 0x3E29 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x51 DUP2 PUSH2 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x61 DUP2 PUSH2 0x9E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0xE5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP PUSH2 0x784 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xE2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1E3 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1D8 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x175 PUSH2 0x24E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1DD JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD DUP3 PUSH2 0x274 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2DC JUMPI PUSH2 0x2DB PUSH2 0x285 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF PUSH2 0x256 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FB DUP3 DUP3 PUSH2 0x2B4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x31B JUMPI PUSH2 0x31A PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x324 DUP3 PUSH2 0x274 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x334 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36E PUSH2 0x369 DUP5 PUSH2 0x300 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x38A JUMPI PUSH2 0x389 PUSH2 0x26F JUMP JUMPDEST JUMPDEST PUSH2 0x395 DUP5 DUP3 DUP6 PUSH2 0x331 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B2 JUMPI PUSH2 0x3B1 PUSH2 0x26A JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x3C2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x35B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E1 JUMPI PUSH2 0x3E0 PUSH2 0x260 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FF JUMPI PUSH2 0x3FE PUSH2 0x265 JUMP JUMPDEST JUMPDEST PUSH2 0x40B DUP5 DUP3 DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x466 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x479 JUMPI PUSH2 0x478 PUSH2 0x41F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x4E1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x4A4 JUMP JUMPDEST PUSH2 0x4EB DUP7 DUP4 PUSH2 0x4A4 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x532 PUSH2 0x52D PUSH2 0x528 DUP5 PUSH2 0x503 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH2 0x503 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x54C DUP4 PUSH2 0x517 JUMP JUMPDEST PUSH2 0x560 PUSH2 0x558 DUP3 PUSH2 0x539 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4B1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x575 PUSH2 0x568 JUMP JUMPDEST PUSH2 0x580 DUP2 DUP5 DUP5 PUSH2 0x543 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x599 PUSH1 0x0 DUP3 PUSH2 0x56D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x586 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5E9 JUMPI PUSH2 0x5BA DUP2 PUSH2 0x47F JUMP JUMPDEST PUSH2 0x5C3 DUP5 PUSH2 0x494 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5D2 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x5E6 PUSH2 0x5DE DUP6 PUSH2 0x494 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x585 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60C PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5EE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x625 DUP4 DUP4 PUSH2 0x5FB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x63E DUP3 PUSH2 0x414 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x657 JUMPI PUSH2 0x656 PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x661 DUP3 SLOAD PUSH2 0x44E JUMP JUMPDEST PUSH2 0x66C DUP3 DUP3 DUP6 PUSH2 0x5A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x69F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x68D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x697 DUP6 DUP3 PUSH2 0x619 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x6FF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x6AD DUP7 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x6D5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x6F2 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x6EE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5FB JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74E PUSH1 0x13 DUP4 PUSH2 0x707 JUMP JUMPDEST SWAP2 POP PUSH2 0x759 DUP3 PUSH2 0x718 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x77D DUP2 PUSH2 0x741 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3696 DUP1 PUSH2 0x793 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x216B JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x222D JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x2290 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x234D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x23E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x27CB JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2901 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2923 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A47 JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x234D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0x898 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AA3 JUMP JUMPDEST PUSH2 0x903 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x23E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B18 JUMP JUMPDEST PUSH2 0x96E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x984 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B58 JUMP JUMPDEST PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2B98 JUMP JUMPDEST PUSH2 0xAB7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C2F JUMP JUMPDEST PUSH2 0xB5F JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC41 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xC8E JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C7 SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54A PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA23 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2CF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD10 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE08 JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE1C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD08 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1001 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D43 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x1029 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2D72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x1072 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2DE0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x1029 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x86D DUP6 PUSH2 0x110B JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x880 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x910 DUP2 PUSH2 0xE08 JUMP JUMPDEST PUSH2 0x919 DUP3 PUSH2 0x11D9 JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x94B SWAP3 SWAP2 SWAP1 PUSH2 0x3089 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x962 SWAP2 SWAP1 PUSH2 0x324D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x980 PUSH2 0x979 PUSH2 0xD08 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1220 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9A7 CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1072 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0x9F8 SWAP2 SWAP1 PUSH2 0x334E JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA0A DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA13 DUP2 PUSH2 0xE08 JUMP JUMPDEST PUSH2 0xA1D DUP4 DUP4 PUSH2 0xF0E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC1 PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB06 JUMPI POP PUSH2 0xB04 DUP7 DUP3 PUSH2 0xA23 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB4A JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB41 SWAP3 SWAP2 SWAP1 PUSH2 0x2CF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB57 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1390 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xB69 DUP2 PUSH2 0x1029 JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBDD JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBD4 SWAP3 SWAP2 SWAP1 PUSH2 0x2D72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBE9 DUP7 DUP7 PUSH1 0x1 PUSH2 0x149B JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC31 SWAP2 SWAP1 PUSH2 0x2DE0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC6D DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1542 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC87 JUMPI POP PUSH2 0xC85 DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1542 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD01 JUMPI POP PUSH2 0xD00 DUP3 PUSH2 0x15E1 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD82 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD79 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDF4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDEB SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE01 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE19 DUP2 PUSH2 0xE14 PUSH2 0xD08 JUMP JUMPDEST PUSH2 0x1775 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE28 DUP4 DUP4 PUSH2 0x898 JUMP JUMPDEST PUSH2 0xF03 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xEA0 PUSH2 0xD08 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xF08 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF1A DUP4 DUP4 PUSH2 0x898 JUMP JUMPDEST ISZERO PUSH2 0xFF6 JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xF93 PUSH2 0xD08 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xFFB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x106F JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1066 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10E4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10DB SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10F1 DUP6 DUP6 PUSH2 0x17C6 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1103 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x111A DUP5 PUSH2 0x17F6 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1139 JUMPI PUSH2 0x1138 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x116B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x11CE JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x11C2 JUMPI PUSH2 0x11C1 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1179 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x121D JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1214 SWAP1 PUSH2 0x3418 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1292 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1289 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1383 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1402 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F9 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1474 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x146B SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1481 DUP6 DUP6 PUSH2 0x17C6 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1492 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x150D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1504 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x151A DUP5 DUP5 PUSH2 0x17C6 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x153B DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1556 SWAP2 SWAP1 PUSH2 0x3447 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x15C9 JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x15D5 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16AC JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x16BC JUMPI POP PUSH2 0x16BB DUP3 PUSH2 0x1949 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16CF DUP6 DUP6 DUP6 DUP6 PUSH2 0x19B3 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x176E JUMPI PUSH1 0x0 PUSH2 0x170D PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x175D JUMPI PUSH1 0x0 PUSH2 0x172E PUSH1 0x0 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1746 PUSH1 0x0 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x1756 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1D5B JUMP JUMPDEST POP POP PUSH2 0x176C JUMP JUMPDEST PUSH2 0x176B DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F0F JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x177F DUP3 DUP3 PUSH2 0x898 JUMP JUMPDEST PUSH2 0x17C2 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B9 SWAP3 SWAP2 SWAP1 PUSH2 0x3462 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1854 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x184A JUMPI PUSH2 0x1849 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1891 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1887 JUMPI PUSH2 0x1886 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x18C0 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18B6 JUMPI PUSH2 0x18B5 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x18E9 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x18DF JUMPI PUSH2 0x18DE PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x190E JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1904 JUMPI PUSH2 0x1903 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1931 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1927 JUMPI PUSH2 0x1926 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1940 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x19FD JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F4 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A07 PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C16 JUMPI PUSH1 0x0 PUSH2 0x1A2A DUP3 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A41 DUP4 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1B6E JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B16 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B0D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x348B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C09 JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C01 SWAP2 SWAP1 PUSH2 0x334E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A0C JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1CD5 JUMPI PUSH1 0x0 PUSH2 0x1C36 PUSH1 0x0 DUP6 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C4E PUSH1 0x0 DUP6 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1CC6 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D54 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D4B SWAP3 SWAP2 SWAP1 PUSH2 0x34D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F07 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DBC SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x355C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1DF8 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DF5 SWAP2 SWAP1 PUSH2 0x35CB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1E7C JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E28 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E2D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1E74 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E6B SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F05 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EFC SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x20BB JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F70 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35F8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FAC JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FA9 SWAP2 SWAP1 PUSH2 0x35CB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2030 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FDC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x2028 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x201F SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20B9 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B0 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2102 DUP3 PUSH2 0x20D7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2112 DUP2 PUSH2 0x20F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x211D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x212F DUP2 PUSH2 0x2109 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2148 DUP2 PUSH2 0x2135 JUMP JUMPDEST DUP2 EQ PUSH2 0x2153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2165 DUP2 PUSH2 0x213F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2190 DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21A1 DUP6 DUP3 DUP7 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21B4 DUP2 PUSH2 0x2135 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x21CF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x220A DUP2 PUSH2 0x21D5 JUMP JUMPDEST DUP2 EQ PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2227 DUP2 PUSH2 0x2201 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2243 JUMPI PUSH2 0x2242 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2251 DUP5 DUP3 DUP6 ADD PUSH2 0x2218 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226F DUP2 PUSH2 0x225A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x228A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2266 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22A6 JUMPI PUSH2 0x22A5 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22B4 DUP5 DUP3 DUP6 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22F7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x22DC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x231F DUP3 PUSH2 0x22BD JUMP JUMPDEST PUSH2 0x2329 DUP2 DUP6 PUSH2 0x22C8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2339 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x22D9 JUMP JUMPDEST PUSH2 0x2342 DUP2 PUSH2 0x2303 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2367 DUP2 DUP5 PUSH2 0x2314 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2382 DUP2 PUSH2 0x236F JUMP JUMPDEST DUP2 EQ PUSH2 0x238D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x239F DUP2 PUSH2 0x2379 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23BB JUMPI PUSH2 0x23BA PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23C9 DUP5 DUP3 DUP6 ADD PUSH2 0x2390 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DB DUP2 PUSH2 0x236F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23F6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2439 DUP3 PUSH2 0x2303 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2458 JUMPI PUSH2 0x2457 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x246B PUSH2 0x20C3 JUMP JUMPDEST SWAP1 POP PUSH2 0x2477 DUP3 DUP3 PUSH2 0x2430 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2497 JUMPI PUSH2 0x2496 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24C0 PUSH2 0x24BB DUP5 PUSH2 0x247C JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x24E3 JUMPI PUSH2 0x24E2 PUSH2 0x24A8 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x250C JUMPI DUP1 PUSH2 0x24F8 DUP9 DUP3 PUSH2 0x2156 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x24E5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x252B JUMPI PUSH2 0x252A PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x253B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2564 JUMPI PUSH2 0x2563 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH2 0x256D DUP3 PUSH2 0x2303 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x259C PUSH2 0x2597 DUP5 PUSH2 0x2549 JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25B8 JUMPI PUSH2 0x25B7 PUSH2 0x2544 JUMP JUMPDEST JUMPDEST PUSH2 0x25C3 DUP5 DUP3 DUP6 PUSH2 0x257A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25E0 JUMPI PUSH2 0x25DF PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2589 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2615 JUMPI PUSH2 0x2614 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2623 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2634 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2655 JUMPI PUSH2 0x2654 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2661 DUP9 DUP3 DUP10 ADD PUSH2 0x2516 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2682 JUMPI PUSH2 0x2681 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x268E DUP9 DUP3 DUP10 ADD PUSH2 0x2516 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26AF JUMPI PUSH2 0x26AE PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x26BB DUP9 DUP3 DUP10 ADD PUSH2 0x25CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26DF JUMPI PUSH2 0x26DE PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26ED DUP6 DUP3 DUP7 ADD PUSH2 0x2390 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x26FE DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2723 JUMPI PUSH2 0x2722 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2747 PUSH2 0x2742 DUP5 PUSH2 0x2708 JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x276A JUMPI PUSH2 0x2769 PUSH2 0x24A8 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2793 JUMPI DUP1 PUSH2 0x277F DUP9 DUP3 PUSH2 0x2120 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x276C JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27B2 JUMPI PUSH2 0x27B1 PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27C2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2734 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27E2 JUMPI PUSH2 0x27E1 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2800 JUMPI PUSH2 0x27FF PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x280C DUP6 DUP3 DUP7 ADD PUSH2 0x279D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282D JUMPI PUSH2 0x282C PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2839 DUP6 DUP3 DUP7 ADD PUSH2 0x2516 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2878 DUP2 PUSH2 0x2135 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x288A DUP4 DUP4 PUSH2 0x286F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28AE DUP3 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x28B8 DUP2 DUP6 PUSH2 0x284E JUMP JUMPDEST SWAP4 POP PUSH2 0x28C3 DUP4 PUSH2 0x285F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x28F4 JUMPI DUP2 MLOAD PUSH2 0x28DB DUP9 DUP3 PUSH2 0x287E JUMP JUMPDEST SWAP8 POP PUSH2 0x28E6 DUP4 PUSH2 0x2896 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x28C7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x291B DUP2 DUP5 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x293D JUMPI PUSH2 0x293C PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x294B DUP8 DUP3 DUP9 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x295C DUP8 DUP3 DUP9 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x296D DUP8 DUP3 DUP9 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x298E JUMPI PUSH2 0x298D PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x299A DUP8 DUP3 DUP9 ADD PUSH2 0x25CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x29C1 JUMPI PUSH2 0x29C0 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH2 0x29CA DUP3 PUSH2 0x2303 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29EA PUSH2 0x29E5 DUP5 PUSH2 0x29A6 JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A06 JUMPI PUSH2 0x2A05 PUSH2 0x2544 JUMP JUMPDEST JUMPDEST PUSH2 0x2A11 DUP5 DUP3 DUP6 PUSH2 0x257A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A2E JUMPI PUSH2 0x2A2D PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A3E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A5E JUMPI PUSH2 0x2A5D PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A6C DUP6 DUP3 DUP7 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A8D JUMPI PUSH2 0x2A8C PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2A99 DUP6 DUP3 DUP7 ADD PUSH2 0x2A19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB9 JUMPI PUSH2 0x2AB8 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD7 JUMPI PUSH2 0x2AD6 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2AE3 DUP5 DUP3 DUP6 ADD PUSH2 0x2A19 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2AF5 DUP2 PUSH2 0x225A JUMP JUMPDEST DUP2 EQ PUSH2 0x2B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B12 DUP2 PUSH2 0x2AEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B2F JUMPI PUSH2 0x2B2E PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B3D DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B4E DUP6 DUP3 DUP7 ADD PUSH2 0x2B03 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B6F JUMPI PUSH2 0x2B6E PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B7D DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B8E DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BB4 JUMPI PUSH2 0x2BB3 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC2 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2BD3 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2BE4 DUP9 DUP3 DUP10 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2BF5 DUP9 DUP3 DUP10 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C16 JUMPI PUSH2 0x2C15 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2C22 DUP9 DUP3 DUP10 ADD PUSH2 0x25CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C48 JUMPI PUSH2 0x2C47 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C56 DUP7 DUP3 DUP8 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2C67 DUP7 DUP3 DUP8 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2C78 DUP7 DUP3 DUP8 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2CC9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2CDC JUMPI PUSH2 0x2CDB PUSH2 0x2C82 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CEB DUP2 PUSH2 0x20F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D06 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x2D13 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2CE2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D2F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x2D3C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D87 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x2D94 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DCA PUSH2 0x2DC5 PUSH2 0x2DC0 DUP5 PUSH2 0x2D9B JUMP JUMPDEST PUSH2 0x2DA5 JUMP JUMPDEST PUSH2 0x2135 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2DDA DUP2 PUSH2 0x2DAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2DF5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2DD1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2E28 DUP2 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x2E32 DUP2 DUP7 PUSH2 0x2DFB JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2E4D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2E62 JUMPI PUSH2 0x2E95 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2E95 JUMP JUMPDEST PUSH2 0x2E6B DUP6 PUSH2 0x2E06 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E8D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2E6E JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ED4 PUSH1 0xC DUP4 PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP PUSH2 0x2EDF DUP3 PUSH2 0x2E9E JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF5 DUP3 PUSH2 0x22BD JUMP JUMPDEST PUSH2 0x2EFF DUP2 DUP6 PUSH2 0x2DFB JUMP JUMPDEST SWAP4 POP PUSH2 0x2F0F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x22D9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F51 PUSH1 0x1 DUP4 PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP PUSH2 0x2F5C DUP3 PUSH2 0x2F1B JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9D PUSH1 0x11 DUP4 PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP PUSH2 0x2FA8 DUP3 PUSH2 0x2F67 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FBF DUP3 DUP7 PUSH2 0x2E1B JUMP JUMPDEST SWAP2 POP PUSH2 0x2FCA DUP3 PUSH2 0x2EC7 JUMP JUMPDEST SWAP2 POP PUSH2 0x2FD6 DUP3 DUP6 PUSH2 0x2EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2FE1 DUP3 PUSH2 0x2F44 JUMP JUMPDEST SWAP2 POP PUSH2 0x2FED DUP3 DUP5 PUSH2 0x2EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2FF8 DUP3 PUSH2 0x2F90 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x3012 DUP2 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x301C DUP2 DUP7 PUSH2 0x22C8 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x3037 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x304D JUMPI PUSH2 0x3080 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3080 JUMP JUMPDEST PUSH2 0x3056 DUP6 PUSH2 0x2E06 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3078 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3059 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30A3 DUP2 DUP6 PUSH2 0x3005 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x30B7 DUP2 DUP5 PUSH2 0x2314 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x310D PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x30D0 JUMP JUMPDEST PUSH2 0x3117 DUP7 DUP4 PUSH2 0x30D0 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x314A PUSH2 0x3145 PUSH2 0x3140 DUP5 PUSH2 0x2135 JUMP JUMPDEST PUSH2 0x2DA5 JUMP JUMPDEST PUSH2 0x2135 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3164 DUP4 PUSH2 0x312F JUMP JUMPDEST PUSH2 0x3178 PUSH2 0x3170 DUP3 PUSH2 0x3151 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x30DD JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x318D PUSH2 0x3180 JUMP JUMPDEST PUSH2 0x3198 DUP2 DUP5 DUP5 PUSH2 0x315B JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31BC JUMPI PUSH2 0x31B1 PUSH1 0x0 DUP3 PUSH2 0x3185 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x319E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x3201 JUMPI PUSH2 0x31D2 DUP2 PUSH2 0x2E06 JUMP JUMPDEST PUSH2 0x31DB DUP5 PUSH2 0x30C0 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x31EA JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x31FE PUSH2 0x31F6 DUP6 PUSH2 0x30C0 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x319D JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3224 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x3206 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323D DUP4 DUP4 PUSH2 0x3213 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3256 DUP3 PUSH2 0x22BD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x326F JUMPI PUSH2 0x326E PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH2 0x3279 DUP3 SLOAD PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x3284 DUP3 DUP3 DUP6 PUSH2 0x31C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x32B7 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x32A5 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x32AF DUP6 DUP3 PUSH2 0x3231 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x3317 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x32C5 DUP7 PUSH2 0x2E06 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32ED JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x32C8 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x330A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x3306 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x3213 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3359 DUP3 PUSH2 0x2135 JUMP JUMPDEST SWAP2 POP PUSH2 0x3364 DUP4 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x337C JUMPI PUSH2 0x337B PUSH2 0x331F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3397 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2CE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3402 PUSH1 0x13 DUP4 PUSH2 0x22C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x340D DUP3 PUSH2 0x33CC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3431 DUP2 PUSH2 0x33F5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3441 DUP2 PUSH2 0x21D5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x345C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3438 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3477 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x3484 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23D2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x34A0 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x34AD PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x34BA PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x34C7 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34EA DUP2 DUP6 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x34FE DUP2 DUP5 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x352E DUP3 PUSH2 0x3507 JUMP JUMPDEST PUSH2 0x3538 DUP2 DUP6 PUSH2 0x3512 JUMP JUMPDEST SWAP4 POP PUSH2 0x3548 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x22D9 JUMP JUMPDEST PUSH2 0x3551 DUP2 PUSH2 0x2303 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3571 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x357E PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x358B PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x3598 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21AB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x35AA DUP2 DUP5 PUSH2 0x3523 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x35C5 DUP2 PUSH2 0x2201 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E1 JUMPI PUSH2 0x35E0 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35EF DUP5 DUP3 DUP6 ADD PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x360D PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x361A PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2CE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x362C DUP2 DUP7 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3640 DUP2 DUP6 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3654 DUP2 DUP5 PUSH2 0x3523 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 SWAP1 PUSH3 0x492C0A SWAP1 LOG3 0xBF PUSH15 0x872AD5B5976F927F8E47CD1409865 ISZERO 0xB8 PUSH25 0xC9BF129664736F6C634300081A003300000000000000000000 ", + "sourceMap": "336:2621:16:-:0;;;497:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:62:3;;;;;;;;;;;;1293:13;1301:4;1293:7;;;:13;;:::i;:::-;1251:62;556:29:16::1;575:9;556:18;;;:29;;:::i;:::-;595:42;2232:4:0;606:18:16::0;::::1;626:10;595;;;:42;;:::i;:::-;;659:9;647;:21;;;;;;:::i;:::-;;497:178:::0;336:2621;;10282:86:3;10355:6;10348:4;:13;;;;;;:::i;:::-;;10282:86;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1801:1;1796:3;1792:11;1786:18;1782:1;1777:3;1773:11;1766:39;1738:2;1735:1;1731:10;1726:15;;1702:113;;;1849:1;1840:6;1835:3;1831:16;1824:27;1672:186;1610:248;;;:::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;;:::i;:::-;2119:112;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;;:::i;:::-;2401:122;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;;2391:282;2318:355;;;;:::o;2679:524::-;2759:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:119;;;2814:79;;:::i;:::-;2776:119;2955:1;2944:9;2940:17;2934:24;2985:18;2977:6;2974:30;2971:117;;;3007:79;;:::i;:::-;2971:117;3112:74;3178:7;3169:6;3158:9;3154:22;3112:74;:::i;:::-;3102:84;;2905:291;2679:524;;;;:::o;3209:99::-;3261:6;3295:5;3289:12;3279:22;;3209:99;;;:::o;3314:180::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3500:320;3544:6;3581:1;3575:4;3571:12;3561:22;;3628:1;3622:4;3618:12;3649:18;3639:81;;3705:4;3697:6;3693:17;3683:27;;3639:81;3767:2;3759:6;3756:14;3736:18;3733:38;3730:84;;3786:18;;:::i;:::-;3730:84;3551:269;3500:320;;;:::o;3826:141::-;3875:4;3898:3;3890:11;;3921:3;3918:1;3911:14;3955:4;3952:1;3942:18;3934:26;;3826:141;;;:::o;3973:93::-;4010:6;4057:2;4052;4045:5;4041:14;4037:23;4027:33;;3973:93;;;:::o;4072:107::-;4116:8;4166:5;4160:4;4156:16;4135:37;;4072:107;;;;:::o;4185:393::-;4254:6;4304:1;4292:10;4288:18;4327:97;4357:66;4346:9;4327:97;:::i;:::-;4445:39;4475:8;4464:9;4445:39;:::i;:::-;4433:51;;4517:4;4513:9;4506:5;4502:21;4493:30;;4566:4;4556:8;4552:19;4545:5;4542:30;4532:40;;4261:317;;4185:393;;;;;:::o;4584:77::-;4621:7;4650:5;4639:16;;4584:77;;;:::o;4667:60::-;4695:3;4716:5;4709:12;;4667:60;;;:::o;4733:142::-;4783:9;4816:53;4834:34;4843:24;4861:5;4843:24;:::i;:::-;4834:34;:::i;:::-;4816:53;:::i;:::-;4803:66;;4733:142;;;:::o;4881:75::-;4924:3;4945:5;4938:12;;4881:75;;;:::o;4962:269::-;5072:39;5103:7;5072:39;:::i;:::-;5133:91;5182:41;5206:16;5182:41;:::i;:::-;5174:6;5167:4;5161:11;5133:91;:::i;:::-;5127:4;5120:105;5038:193;4962:269;;;:::o;5237:73::-;5282:3;5237:73;:::o;5316:189::-;5393:32;;:::i;:::-;5434:65;5492:6;5484;5478:4;5434:65;:::i;:::-;5369:136;5316:189;;:::o;5511:186::-;5571:120;5588:3;5581:5;5578:14;5571:120;;;5642:39;5679:1;5672:5;5642:39;:::i;:::-;5615:1;5608:5;5604:13;5595:22;;5571:120;;;5511:186;;:::o;5703:543::-;5804:2;5799:3;5796:11;5793:446;;;5838:38;5870:5;5838:38;:::i;:::-;5922:29;5940:10;5922:29;:::i;:::-;5912:8;5908:44;6105:2;6093:10;6090:18;6087:49;;;6126:8;6111:23;;6087:49;6149:80;6205:22;6223:3;6205:22;:::i;:::-;6195:8;6191:37;6178:11;6149:80;:::i;:::-;5808:431;;5793:446;5703:543;;;:::o;6252:117::-;6306:8;6356:5;6350:4;6346:16;6325:37;;6252:117;;;;:::o;6375:169::-;6419:6;6452:51;6500:1;6496:6;6488:5;6485:1;6481:13;6452:51;:::i;:::-;6448:56;6533:4;6527;6523:15;6513:25;;6426:118;6375:169;;;;:::o;6549:295::-;6625:4;6771:29;6796:3;6790:4;6771:29;:::i;:::-;6763:37;;6833:3;6830:1;6826:11;6820:4;6817:21;6809:29;;6549:295;;;;:::o;6849:1395::-;6966:37;6999:3;6966:37;:::i;:::-;7068:18;7060:6;7057:30;7054:56;;;7090:18;;:::i;:::-;7054:56;7134:38;7166:4;7160:11;7134:38;:::i;:::-;7219:67;7279:6;7271;7265:4;7219:67;:::i;:::-;7313:1;7337:4;7324:17;;7369:2;7361:6;7358:14;7386:1;7381:618;;;;8043:1;8060:6;8057:77;;;8109:9;8104:3;8100:19;8094:26;8085:35;;8057:77;8160:67;8220:6;8213:5;8160:67;:::i;:::-;8154:4;8147:81;8016:222;7351:887;;7381:618;7433:4;7429:9;7421:6;7417:22;7467:37;7499:4;7467:37;:::i;:::-;7526:1;7540:208;7554:7;7551:1;7548:14;7540:208;;;7633:9;7628:3;7624:19;7618:26;7610:6;7603:42;7684:1;7676:6;7672:14;7662:24;;7731:2;7720:9;7716:18;7703:31;;7577:4;7574:1;7570:12;7565:17;;7540:208;;;7776:6;7767:7;7764:19;7761:179;;;7834:9;7829:3;7825:19;7819:26;7877:48;7919:4;7911:6;7907:17;7896:9;7877:48;:::i;:::-;7869:6;7862:64;7784:156;7761:179;7986:1;7982;7974:6;7970:14;7966:22;7960:4;7953:36;7388:611;;;7351:887;;6941:1303;;;6849:1395;;:::o;8250:169::-;8334:11;8368:6;8363:3;8356:19;8408:4;8403:3;8399:14;8384:29;;8250:169;;;;:::o;8425:::-;8565:21;8561:1;8553:6;8549:14;8542:45;8425:169;:::o;8600:366::-;8742:3;8763:67;8827:2;8822:3;8763:67;:::i;:::-;8756:74;;8839:93;8928:3;8839:93;:::i;:::-;8957:2;8952:3;8948:12;8941:19;;8600:366;;;:::o;8972:419::-;9138:4;9176:2;9165:9;9161:18;9153:26;;9225:9;9219:4;9215:20;9211:1;9200:9;9196:17;9189:47;9253:131;9379:4;9253:131;:::i;:::-;9245:139;;8972:419;;;:::o;336:2621:16:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_29": { + "entryPoint": 2407, + "id": 29, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_asSingletonArrays_1565": { + "entryPoint": 6086, + "id": 1565, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@_burn_1332": { + "entryPoint": 5275, + "id": 1332, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkRole_114": { + "entryPoint": 6005, + "id": 114, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkRole_93": { + "entryPoint": 3592, + "id": 93, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkTokenId_3773": { + "entryPoint": 4137, + "id": 3773, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_doSafeBatchTransferAcceptanceCheck_1549": { + "entryPoint": 7951, + "id": 1549, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_doSafeTransferAcceptanceCheck_1479": { + "entryPoint": 7515, + "id": 1479, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 3612, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1241": { + "entryPoint": 4210, + "id": 1241, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_msgSender_1942": { + "entryPoint": 3336, + "id": 1942, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeRole_294": { + "entryPoint": 3854, + "id": 294, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_safeBatchTransferFrom_1178": { + "entryPoint": 3344, + "id": 1178, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_safeTransferFrom_1123": { + "entryPoint": 5008, + "id": 1123, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_setApprovalForAll_1411": { + "entryPoint": 4640, + "id": 1411, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_updateWithAcceptanceCheck_1057": { + "entryPoint": 5827, + "id": 1057, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_update_981": { + "entryPoint": 6579, + "id": 981, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@balanceOfBatch_705": { + "entryPoint": 1669, + "id": 705, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_635": { + "entryPoint": 1010, + "id": 635, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@burn_3929": { + "entryPoint": 2911, + "id": 3929, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@counter_3829": { + "entryPoint": 1934, + "id": 3829, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRoleAdmin_128": { + "entryPoint": 1312, + "id": 128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_147": { + "entryPoint": 1512, + "id": 147, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 2200, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isApprovedForAll_738": { + "entryPoint": 2595, + "id": 738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@issue_3857": { + "entryPoint": 2436, + "id": 3857, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@log10_3430": { + "entryPoint": 6134, + "id": 3430, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@mint_3899": { + "entryPoint": 1944, + "id": 3899, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@renounceRole_189": { + "entryPoint": 1546, + "id": 189, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@requireNonEmptyURI_3792": { + "entryPoint": 4569, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@revokeRole_166": { + "entryPoint": 2561, + "id": 166, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@safeBatchTransferFrom_828": { + "entryPoint": 1344, + "id": 828, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@safeTransferFrom_782": { + "entryPoint": 2743, + "id": 782, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@setApprovalForAll_721": { + "entryPoint": 2414, + "id": 721, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsERC165InterfaceUnchecked_2543": { + "entryPoint": 5442, + "id": 2543, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@supportsERC165_2380": { + "entryPoint": 3137, + "id": 2380, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2348": { + "entryPoint": 6473, + "id": 2348, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3955": { + "entryPoint": 1100, + "id": 3955, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_607": { + "entryPoint": 5601, + "id": 607, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_62": { + "entryPoint": 3214, + "id": 62, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toString_2138": { + "entryPoint": 4363, + "id": 2138, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1916": { + "entryPoint": 4117, + "id": 1916, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1929": { + "entryPoint": 4097, + "id": 1929, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@updateBaseURI_3977": { + "entryPoint": 2307, + "id": 3977, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@uri_4006": { + "entryPoint": 2134, + "id": 4006, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@uri_618": { + "entryPoint": 1164, + "id": 618, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10036, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9389, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9609, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 10711, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 8480, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10141, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9494, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 11011, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 9104, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8728, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 13750, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9675, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 10777, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8534, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11096, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 9721, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 11160, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 11032, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 8555, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256": { + "entryPoint": 11311, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 10531, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10187, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 9125, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 9928, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8749, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 13771, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 10915, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8848, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_string_memory_ptr": { + "entryPoint": 10823, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 10366, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 11490, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10403, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8806, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 9170, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes4_to_t_bytes4_fromStack": { + "entryPoint": 13368, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13603, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": { + "entryPoint": 11729, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8980, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12010, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12293, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11803, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13301, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12176, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11975, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12100, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 10351, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 8619, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12211, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 13186, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 11505, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13816, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13660, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 13410, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 11634, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 13451, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 10497, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 13520, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8821, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 9185, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": { + "entryPoint": 13383, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed": { + "entryPoint": 11744, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9037, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12425, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13336, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 8634, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 11546, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9313, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8387, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 9992, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9340, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9545, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 10662, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10335, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11782, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10307, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 13575, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8893, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10390, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10318, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13586, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8904, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11771, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 13134, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 12736, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8439, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8794, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 9071, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8661, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 11675, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8407, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8501, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 12701, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_rational_1_by_1_to_t_uint256": { + "entryPoint": 11695, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 12591, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 12877, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9594, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8921, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 12480, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 11441, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 12849, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9264, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11685, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 12819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 13087, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13213, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11394, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 11587, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9217, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 12625, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9212, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 9384, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9540, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8402, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8397, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 8963, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 12496, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 12806, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 12677, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 13260, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55": { + "entryPoint": 12135, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7": { + "entryPoint": 11934, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527": { + "entryPoint": 12059, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 12509, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 12635, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8457, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 10988, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 9081, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8705, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8511, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 12672, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:41517:18", + "nodeType": "YulBlock", + "src": "0:41517:18", + "statements": [ + { + "body": { + "nativeSrc": "47:35:18", + "nodeType": "YulBlock", + "src": "47:35:18", + "statements": [ + { + "nativeSrc": "57:19:18", + "nodeType": "YulAssignment", + "src": "57:19:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:18", + "nodeType": "YulLiteral", + "src": "73:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:18", + "nodeType": "YulIdentifier", + "src": "67:5:18" + }, + "nativeSrc": "67:9:18", + "nodeType": "YulFunctionCall", + "src": "67:9:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:18", + "nodeType": "YulIdentifier", + "src": "57:6:18" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:18", + "nodeType": "YulTypedName", + "src": "40:6:18", + "type": "" + } + ], + "src": "7:75:18" + }, + { + "body": { + "nativeSrc": "177:28:18", + "nodeType": "YulBlock", + "src": "177:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:18", + "nodeType": "YulLiteral", + "src": "194:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:18", + "nodeType": "YulLiteral", + "src": "197:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:18", + "nodeType": "YulIdentifier", + "src": "187:6:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulFunctionCall", + "src": "187:12:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulExpressionStatement", + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:18", + "nodeType": "YulLiteral", + "src": "317:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:18", + "nodeType": "YulLiteral", + "src": "320:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:18", + "nodeType": "YulIdentifier", + "src": "310:6:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulFunctionCall", + "src": "310:12:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulExpressionStatement", + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "379:81:18", + "nodeType": "YulBlock", + "src": "379:81:18", + "statements": [ + { + "nativeSrc": "389:65:18", + "nodeType": "YulAssignment", + "src": "389:65:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:18", + "nodeType": "YulIdentifier", + "src": "404:5:18" + }, + { + "kind": "number", + "nativeSrc": "411:42:18", + "nodeType": "YulLiteral", + "src": "411:42:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:18", + "nodeType": "YulIdentifier", + "src": "400:3:18" + }, + "nativeSrc": "400:54:18", + "nodeType": "YulFunctionCall", + "src": "400:54:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:18", + "nodeType": "YulIdentifier", + "src": "389:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:18", + "nodeType": "YulTypedName", + "src": "361:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:18", + "nodeType": "YulTypedName", + "src": "371:7:18", + "type": "" + } + ], + "src": "334:126:18" + }, + { + "body": { + "nativeSrc": "511:51:18", + "nodeType": "YulBlock", + "src": "511:51:18", + "statements": [ + { + "nativeSrc": "521:35:18", + "nodeType": "YulAssignment", + "src": "521:35:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:18", + "nodeType": "YulIdentifier", + "src": "550:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:18", + "nodeType": "YulIdentifier", + "src": "532:17:18" + }, + "nativeSrc": "532:24:18", + "nodeType": "YulFunctionCall", + "src": "532:24:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:18", + "nodeType": "YulIdentifier", + "src": "521:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:18", + "nodeType": "YulTypedName", + "src": "493:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:18", + "nodeType": "YulTypedName", + "src": "503:7:18", + "type": "" + } + ], + "src": "466:96:18" + }, + { + "body": { + "nativeSrc": "611:79:18", + "nodeType": "YulBlock", + "src": "611:79:18", + "statements": [ + { + "body": { + "nativeSrc": "668:16:18", + "nodeType": "YulBlock", + "src": "668:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:18", + "nodeType": "YulLiteral", + "src": "677:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:18", + "nodeType": "YulLiteral", + "src": "680:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:18", + "nodeType": "YulIdentifier", + "src": "670:6:18" + }, + "nativeSrc": "670:12:18", + "nodeType": "YulFunctionCall", + "src": "670:12:18" + }, + "nativeSrc": "670:12:18", + "nodeType": "YulExpressionStatement", + "src": "670:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:18", + "nodeType": "YulIdentifier", + "src": "634:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:18", + "nodeType": "YulIdentifier", + "src": "659:5:18" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:18", + "nodeType": "YulIdentifier", + "src": "641:17:18" + }, + "nativeSrc": "641:24:18", + "nodeType": "YulFunctionCall", + "src": "641:24:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:18", + "nodeType": "YulIdentifier", + "src": "631:2:18" + }, + "nativeSrc": "631:35:18", + "nodeType": "YulFunctionCall", + "src": "631:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:18", + "nodeType": "YulIdentifier", + "src": "624:6:18" + }, + "nativeSrc": "624:43:18", + "nodeType": "YulFunctionCall", + "src": "624:43:18" + }, + "nativeSrc": "621:63:18", + "nodeType": "YulIf", + "src": "621:63:18" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:18", + "nodeType": "YulTypedName", + "src": "604:5:18", + "type": "" + } + ], + "src": "568:122:18" + }, + { + "body": { + "nativeSrc": "748:87:18", + "nodeType": "YulBlock", + "src": "748:87:18", + "statements": [ + { + "nativeSrc": "758:29:18", + "nodeType": "YulAssignment", + "src": "758:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "780:6:18", + "nodeType": "YulIdentifier", + "src": "780:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "767:12:18", + "nodeType": "YulIdentifier", + "src": "767:12:18" + }, + "nativeSrc": "767:20:18", + "nodeType": "YulFunctionCall", + "src": "767:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "758:5:18", + "nodeType": "YulIdentifier", + "src": "758:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "823:5:18", + "nodeType": "YulIdentifier", + "src": "823:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "796:26:18", + "nodeType": "YulIdentifier", + "src": "796:26:18" + }, + "nativeSrc": "796:33:18", + "nodeType": "YulFunctionCall", + "src": "796:33:18" + }, + "nativeSrc": "796:33:18", + "nodeType": "YulExpressionStatement", + "src": "796:33:18" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "696:139:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "726:6:18", + "nodeType": "YulTypedName", + "src": "726:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "734:3:18", + "nodeType": "YulTypedName", + "src": "734:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "742:5:18", + "nodeType": "YulTypedName", + "src": "742:5:18", + "type": "" + } + ], + "src": "696:139:18" + }, + { + "body": { + "nativeSrc": "886:32:18", + "nodeType": "YulBlock", + "src": "886:32:18", + "statements": [ + { + "nativeSrc": "896:16:18", + "nodeType": "YulAssignment", + "src": "896:16:18", + "value": { + "name": "value", + "nativeSrc": "907:5:18", + "nodeType": "YulIdentifier", + "src": "907:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "896:7:18", + "nodeType": "YulIdentifier", + "src": "896:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "841:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "868:5:18", + "nodeType": "YulTypedName", + "src": "868:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "878:7:18", + "nodeType": "YulTypedName", + "src": "878:7:18", + "type": "" + } + ], + "src": "841:77:18" + }, + { + "body": { + "nativeSrc": "967:79:18", + "nodeType": "YulBlock", + "src": "967:79:18", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:18", + "nodeType": "YulBlock", + "src": "1024:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:18", + "nodeType": "YulLiteral", + "src": "1033:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:18", + "nodeType": "YulLiteral", + "src": "1036:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:18", + "nodeType": "YulIdentifier", + "src": "1026:6:18" + }, + "nativeSrc": "1026:12:18", + "nodeType": "YulFunctionCall", + "src": "1026:12:18" + }, + "nativeSrc": "1026:12:18", + "nodeType": "YulExpressionStatement", + "src": "1026:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:18", + "nodeType": "YulIdentifier", + "src": "990:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1015:5:18", + "nodeType": "YulIdentifier", + "src": "1015:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "997:17:18", + "nodeType": "YulIdentifier", + "src": "997:17:18" + }, + "nativeSrc": "997:24:18", + "nodeType": "YulFunctionCall", + "src": "997:24:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:18", + "nodeType": "YulIdentifier", + "src": "987:2:18" + }, + "nativeSrc": "987:35:18", + "nodeType": "YulFunctionCall", + "src": "987:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:18", + "nodeType": "YulIdentifier", + "src": "980:6:18" + }, + "nativeSrc": "980:43:18", + "nodeType": "YulFunctionCall", + "src": "980:43:18" + }, + "nativeSrc": "977:63:18", + "nodeType": "YulIf", + "src": "977:63:18" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "924:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:18", + "nodeType": "YulTypedName", + "src": "960:5:18", + "type": "" + } + ], + "src": "924:122:18" + }, + { + "body": { + "nativeSrc": "1104:87:18", + "nodeType": "YulBlock", + "src": "1104:87:18", + "statements": [ + { + "nativeSrc": "1114:29:18", + "nodeType": "YulAssignment", + "src": "1114:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:18", + "nodeType": "YulIdentifier", + "src": "1136:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:18", + "nodeType": "YulIdentifier", + "src": "1123:12:18" + }, + "nativeSrc": "1123:20:18", + "nodeType": "YulFunctionCall", + "src": "1123:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:18", + "nodeType": "YulIdentifier", + "src": "1114:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:18", + "nodeType": "YulIdentifier", + "src": "1179:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1152:26:18", + "nodeType": "YulIdentifier", + "src": "1152:26:18" + }, + "nativeSrc": "1152:33:18", + "nodeType": "YulFunctionCall", + "src": "1152:33:18" + }, + "nativeSrc": "1152:33:18", + "nodeType": "YulExpressionStatement", + "src": "1152:33:18" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1052:139:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:18", + "nodeType": "YulTypedName", + "src": "1082:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:18", + "nodeType": "YulTypedName", + "src": "1090:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:18", + "nodeType": "YulTypedName", + "src": "1098:5:18", + "type": "" + } + ], + "src": "1052:139:18" + }, + { + "body": { + "nativeSrc": "1280:391:18", + "nodeType": "YulBlock", + "src": "1280:391:18", + "statements": [ + { + "body": { + "nativeSrc": "1326:83:18", + "nodeType": "YulBlock", + "src": "1326:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1328:77:18", + "nodeType": "YulIdentifier", + "src": "1328:77:18" + }, + "nativeSrc": "1328:79:18", + "nodeType": "YulFunctionCall", + "src": "1328:79:18" + }, + "nativeSrc": "1328:79:18", + "nodeType": "YulExpressionStatement", + "src": "1328:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1301:7:18", + "nodeType": "YulIdentifier", + "src": "1301:7:18" + }, + { + "name": "headStart", + "nativeSrc": "1310:9:18", + "nodeType": "YulIdentifier", + "src": "1310:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1297:3:18", + "nodeType": "YulIdentifier", + "src": "1297:3:18" + }, + "nativeSrc": "1297:23:18", + "nodeType": "YulFunctionCall", + "src": "1297:23:18" + }, + { + "kind": "number", + "nativeSrc": "1322:2:18", + "nodeType": "YulLiteral", + "src": "1322:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1293:3:18", + "nodeType": "YulIdentifier", + "src": "1293:3:18" + }, + "nativeSrc": "1293:32:18", + "nodeType": "YulFunctionCall", + "src": "1293:32:18" + }, + "nativeSrc": "1290:119:18", + "nodeType": "YulIf", + "src": "1290:119:18" + }, + { + "nativeSrc": "1419:117:18", + "nodeType": "YulBlock", + "src": "1419:117:18", + "statements": [ + { + "nativeSrc": "1434:15:18", + "nodeType": "YulVariableDeclaration", + "src": "1434:15:18", + "value": { + "kind": "number", + "nativeSrc": "1448:1:18", + "nodeType": "YulLiteral", + "src": "1448:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1438:6:18", + "nodeType": "YulTypedName", + "src": "1438:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "1463:63:18", + "nodeType": "YulAssignment", + "src": "1463:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1498:9:18", + "nodeType": "YulIdentifier", + "src": "1498:9:18" + }, + { + "name": "offset", + "nativeSrc": "1509:6:18", + "nodeType": "YulIdentifier", + "src": "1509:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1494:3:18", + "nodeType": "YulIdentifier", + "src": "1494:3:18" + }, + "nativeSrc": "1494:22:18", + "nodeType": "YulFunctionCall", + "src": "1494:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "1518:7:18", + "nodeType": "YulIdentifier", + "src": "1518:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1473:20:18", + "nodeType": "YulIdentifier", + "src": "1473:20:18" + }, + "nativeSrc": "1473:53:18", + "nodeType": "YulFunctionCall", + "src": "1473:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1463:6:18", + "nodeType": "YulIdentifier", + "src": "1463:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "1546:118:18", + "nodeType": "YulBlock", + "src": "1546:118:18", + "statements": [ + { + "nativeSrc": "1561:16:18", + "nodeType": "YulVariableDeclaration", + "src": "1561:16:18", + "value": { + "kind": "number", + "nativeSrc": "1575:2:18", + "nodeType": "YulLiteral", + "src": "1575:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1565:6:18", + "nodeType": "YulTypedName", + "src": "1565:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "1591:63:18", + "nodeType": "YulAssignment", + "src": "1591:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1626:9:18", + "nodeType": "YulIdentifier", + "src": "1626:9:18" + }, + { + "name": "offset", + "nativeSrc": "1637:6:18", + "nodeType": "YulIdentifier", + "src": "1637:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1622:3:18", + "nodeType": "YulIdentifier", + "src": "1622:3:18" + }, + "nativeSrc": "1622:22:18", + "nodeType": "YulFunctionCall", + "src": "1622:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "1646:7:18", + "nodeType": "YulIdentifier", + "src": "1646:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "1601:20:18", + "nodeType": "YulIdentifier", + "src": "1601:20:18" + }, + "nativeSrc": "1601:53:18", + "nodeType": "YulFunctionCall", + "src": "1601:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1591:6:18", + "nodeType": "YulIdentifier", + "src": "1591:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1197:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1242:9:18", + "nodeType": "YulTypedName", + "src": "1242:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1253:7:18", + "nodeType": "YulTypedName", + "src": "1253:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1265:6:18", + "nodeType": "YulTypedName", + "src": "1265:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1273:6:18", + "nodeType": "YulTypedName", + "src": "1273:6:18", + "type": "" + } + ], + "src": "1197:474:18" + }, + { + "body": { + "nativeSrc": "1742:53:18", + "nodeType": "YulBlock", + "src": "1742:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1759:3:18", + "nodeType": "YulIdentifier", + "src": "1759:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1782:5:18", + "nodeType": "YulIdentifier", + "src": "1782:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1764:17:18", + "nodeType": "YulIdentifier", + "src": "1764:17:18" + }, + "nativeSrc": "1764:24:18", + "nodeType": "YulFunctionCall", + "src": "1764:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1752:6:18", + "nodeType": "YulIdentifier", + "src": "1752:6:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulFunctionCall", + "src": "1752:37:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulExpressionStatement", + "src": "1752:37:18" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1677:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1730:5:18", + "nodeType": "YulTypedName", + "src": "1730:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1737:3:18", + "nodeType": "YulTypedName", + "src": "1737:3:18", + "type": "" + } + ], + "src": "1677:118:18" + }, + { + "body": { + "nativeSrc": "1899:124:18", + "nodeType": "YulBlock", + "src": "1899:124:18", + "statements": [ + { + "nativeSrc": "1909:26:18", + "nodeType": "YulAssignment", + "src": "1909:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1921:9:18", + "nodeType": "YulIdentifier", + "src": "1921:9:18" + }, + { + "kind": "number", + "nativeSrc": "1932:2:18", + "nodeType": "YulLiteral", + "src": "1932:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1917:3:18", + "nodeType": "YulIdentifier", + "src": "1917:3:18" + }, + "nativeSrc": "1917:18:18", + "nodeType": "YulFunctionCall", + "src": "1917:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1909:4:18", + "nodeType": "YulIdentifier", + "src": "1909:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1989:6:18", + "nodeType": "YulIdentifier", + "src": "1989:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2002:9:18", + "nodeType": "YulIdentifier", + "src": "2002:9:18" + }, + { + "kind": "number", + "nativeSrc": "2013:1:18", + "nodeType": "YulLiteral", + "src": "2013:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1998:3:18", + "nodeType": "YulIdentifier", + "src": "1998:3:18" + }, + "nativeSrc": "1998:17:18", + "nodeType": "YulFunctionCall", + "src": "1998:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1945:43:18", + "nodeType": "YulIdentifier", + "src": "1945:43:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulFunctionCall", + "src": "1945:71:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulExpressionStatement", + "src": "1945:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1801:222:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1871:9:18", + "nodeType": "YulTypedName", + "src": "1871:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1883:6:18", + "nodeType": "YulTypedName", + "src": "1883:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1894:4:18", + "nodeType": "YulTypedName", + "src": "1894:4:18", + "type": "" + } + ], + "src": "1801:222:18" + }, + { + "body": { + "nativeSrc": "2073:105:18", + "nodeType": "YulBlock", + "src": "2073:105:18", + "statements": [ + { + "nativeSrc": "2083:89:18", + "nodeType": "YulAssignment", + "src": "2083:89:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2098:5:18", + "nodeType": "YulIdentifier", + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:66:18", + "nodeType": "YulLiteral", + "src": "2105:66:18", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2094:3:18", + "nodeType": "YulIdentifier", + "src": "2094:3:18" + }, + "nativeSrc": "2094:78:18", + "nodeType": "YulFunctionCall", + "src": "2094:78:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2083:7:18", + "nodeType": "YulIdentifier", + "src": "2083:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "2029:149:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2055:5:18", + "nodeType": "YulTypedName", + "src": "2055:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2065:7:18", + "nodeType": "YulTypedName", + "src": "2065:7:18", + "type": "" + } + ], + "src": "2029:149:18" + }, + { + "body": { + "nativeSrc": "2226:78:18", + "nodeType": "YulBlock", + "src": "2226:78:18", + "statements": [ + { + "body": { + "nativeSrc": "2282:16:18", + "nodeType": "YulBlock", + "src": "2282:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2291:1:18", + "nodeType": "YulLiteral", + "src": "2291:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2294:1:18", + "nodeType": "YulLiteral", + "src": "2294:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2284:6:18", + "nodeType": "YulIdentifier", + "src": "2284:6:18" + }, + "nativeSrc": "2284:12:18", + "nodeType": "YulFunctionCall", + "src": "2284:12:18" + }, + "nativeSrc": "2284:12:18", + "nodeType": "YulExpressionStatement", + "src": "2284:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2249:5:18", + "nodeType": "YulIdentifier", + "src": "2249:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2273:5:18", + "nodeType": "YulIdentifier", + "src": "2273:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "2256:16:18", + "nodeType": "YulIdentifier", + "src": "2256:16:18" + }, + "nativeSrc": "2256:23:18", + "nodeType": "YulFunctionCall", + "src": "2256:23:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2246:2:18", + "nodeType": "YulIdentifier", + "src": "2246:2:18" + }, + "nativeSrc": "2246:34:18", + "nodeType": "YulFunctionCall", + "src": "2246:34:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2239:6:18", + "nodeType": "YulIdentifier", + "src": "2239:6:18" + }, + "nativeSrc": "2239:42:18", + "nodeType": "YulFunctionCall", + "src": "2239:42:18" + }, + "nativeSrc": "2236:62:18", + "nodeType": "YulIf", + "src": "2236:62:18" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "2184:120:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2219:5:18", + "nodeType": "YulTypedName", + "src": "2219:5:18", + "type": "" + } + ], + "src": "2184:120:18" + }, + { + "body": { + "nativeSrc": "2361:86:18", + "nodeType": "YulBlock", + "src": "2361:86:18", + "statements": [ + { + "nativeSrc": "2371:29:18", + "nodeType": "YulAssignment", + "src": "2371:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2393:6:18", + "nodeType": "YulIdentifier", + "src": "2393:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2380:12:18", + "nodeType": "YulIdentifier", + "src": "2380:12:18" + }, + "nativeSrc": "2380:20:18", + "nodeType": "YulFunctionCall", + "src": "2380:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2371:5:18", + "nodeType": "YulIdentifier", + "src": "2371:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2435:5:18", + "nodeType": "YulIdentifier", + "src": "2435:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "2409:25:18", + "nodeType": "YulIdentifier", + "src": "2409:25:18" + }, + "nativeSrc": "2409:32:18", + "nodeType": "YulFunctionCall", + "src": "2409:32:18" + }, + "nativeSrc": "2409:32:18", + "nodeType": "YulExpressionStatement", + "src": "2409:32:18" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "2310:137:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2339:6:18", + "nodeType": "YulTypedName", + "src": "2339:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2347:3:18", + "nodeType": "YulTypedName", + "src": "2347:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2355:5:18", + "nodeType": "YulTypedName", + "src": "2355:5:18", + "type": "" + } + ], + "src": "2310:137:18" + }, + { + "body": { + "nativeSrc": "2518:262:18", + "nodeType": "YulBlock", + "src": "2518:262:18", + "statements": [ + { + "body": { + "nativeSrc": "2564:83:18", + "nodeType": "YulBlock", + "src": "2564:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2566:77:18", + "nodeType": "YulIdentifier", + "src": "2566:77:18" + }, + "nativeSrc": "2566:79:18", + "nodeType": "YulFunctionCall", + "src": "2566:79:18" + }, + "nativeSrc": "2566:79:18", + "nodeType": "YulExpressionStatement", + "src": "2566:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2539:7:18", + "nodeType": "YulIdentifier", + "src": "2539:7:18" + }, + { + "name": "headStart", + "nativeSrc": "2548:9:18", + "nodeType": "YulIdentifier", + "src": "2548:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2535:3:18", + "nodeType": "YulIdentifier", + "src": "2535:3:18" + }, + "nativeSrc": "2535:23:18", + "nodeType": "YulFunctionCall", + "src": "2535:23:18" + }, + { + "kind": "number", + "nativeSrc": "2560:2:18", + "nodeType": "YulLiteral", + "src": "2560:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2531:3:18", + "nodeType": "YulIdentifier", + "src": "2531:3:18" + }, + "nativeSrc": "2531:32:18", + "nodeType": "YulFunctionCall", + "src": "2531:32:18" + }, + "nativeSrc": "2528:119:18", + "nodeType": "YulIf", + "src": "2528:119:18" + }, + { + "nativeSrc": "2657:116:18", + "nodeType": "YulBlock", + "src": "2657:116:18", + "statements": [ + { + "nativeSrc": "2672:15:18", + "nodeType": "YulVariableDeclaration", + "src": "2672:15:18", + "value": { + "kind": "number", + "nativeSrc": "2686:1:18", + "nodeType": "YulLiteral", + "src": "2686:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2676:6:18", + "nodeType": "YulTypedName", + "src": "2676:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "2701:62:18", + "nodeType": "YulAssignment", + "src": "2701:62:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2735:9:18", + "nodeType": "YulIdentifier", + "src": "2735:9:18" + }, + { + "name": "offset", + "nativeSrc": "2746:6:18", + "nodeType": "YulIdentifier", + "src": "2746:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2731:3:18", + "nodeType": "YulIdentifier", + "src": "2731:3:18" + }, + "nativeSrc": "2731:22:18", + "nodeType": "YulFunctionCall", + "src": "2731:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "2755:7:18", + "nodeType": "YulIdentifier", + "src": "2755:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "2711:19:18", + "nodeType": "YulIdentifier", + "src": "2711:19:18" + }, + "nativeSrc": "2711:52:18", + "nodeType": "YulFunctionCall", + "src": "2711:52:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2701:6:18", + "nodeType": "YulIdentifier", + "src": "2701:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2453:327:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2488:9:18", + "nodeType": "YulTypedName", + "src": "2488:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2499:7:18", + "nodeType": "YulTypedName", + "src": "2499:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2511:6:18", + "nodeType": "YulTypedName", + "src": "2511:6:18", + "type": "" + } + ], + "src": "2453:327:18" + }, + { + "body": { + "nativeSrc": "2828:48:18", + "nodeType": "YulBlock", + "src": "2828:48:18", + "statements": [ + { + "nativeSrc": "2838:32:18", + "nodeType": "YulAssignment", + "src": "2838:32:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2863:5:18", + "nodeType": "YulIdentifier", + "src": "2863:5:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2856:6:18", + "nodeType": "YulIdentifier", + "src": "2856:6:18" + }, + "nativeSrc": "2856:13:18", + "nodeType": "YulFunctionCall", + "src": "2856:13:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2849:6:18", + "nodeType": "YulIdentifier", + "src": "2849:6:18" + }, + "nativeSrc": "2849:21:18", + "nodeType": "YulFunctionCall", + "src": "2849:21:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2838:7:18", + "nodeType": "YulIdentifier", + "src": "2838:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "2786:90:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2810:5:18", + "nodeType": "YulTypedName", + "src": "2810:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2820:7:18", + "nodeType": "YulTypedName", + "src": "2820:7:18", + "type": "" + } + ], + "src": "2786:90:18" + }, + { + "body": { + "nativeSrc": "2941:50:18", + "nodeType": "YulBlock", + "src": "2941:50:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2958:3:18", + "nodeType": "YulIdentifier", + "src": "2958:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2978:5:18", + "nodeType": "YulIdentifier", + "src": "2978:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "2963:14:18", + "nodeType": "YulIdentifier", + "src": "2963:14:18" + }, + "nativeSrc": "2963:21:18", + "nodeType": "YulFunctionCall", + "src": "2963:21:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2951:6:18", + "nodeType": "YulIdentifier", + "src": "2951:6:18" + }, + "nativeSrc": "2951:34:18", + "nodeType": "YulFunctionCall", + "src": "2951:34:18" + }, + "nativeSrc": "2951:34:18", + "nodeType": "YulExpressionStatement", + "src": "2951:34:18" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "2882:109:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2929:5:18", + "nodeType": "YulTypedName", + "src": "2929:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2936:3:18", + "nodeType": "YulTypedName", + "src": "2936:3:18", + "type": "" + } + ], + "src": "2882:109:18" + }, + { + "body": { + "nativeSrc": "3089:118:18", + "nodeType": "YulBlock", + "src": "3089:118:18", + "statements": [ + { + "nativeSrc": "3099:26:18", + "nodeType": "YulAssignment", + "src": "3099:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3111:9:18", + "nodeType": "YulIdentifier", + "src": "3111:9:18" + }, + { + "kind": "number", + "nativeSrc": "3122:2:18", + "nodeType": "YulLiteral", + "src": "3122:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3107:3:18", + "nodeType": "YulIdentifier", + "src": "3107:3:18" + }, + "nativeSrc": "3107:18:18", + "nodeType": "YulFunctionCall", + "src": "3107:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3099:4:18", + "nodeType": "YulIdentifier", + "src": "3099:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3173:6:18", + "nodeType": "YulIdentifier", + "src": "3173:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3186:9:18", + "nodeType": "YulIdentifier", + "src": "3186:9:18" + }, + { + "kind": "number", + "nativeSrc": "3197:1:18", + "nodeType": "YulLiteral", + "src": "3197:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3182:3:18", + "nodeType": "YulIdentifier", + "src": "3182:3:18" + }, + "nativeSrc": "3182:17:18", + "nodeType": "YulFunctionCall", + "src": "3182:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3135:37:18", + "nodeType": "YulIdentifier", + "src": "3135:37:18" + }, + "nativeSrc": "3135:65:18", + "nodeType": "YulFunctionCall", + "src": "3135:65:18" + }, + "nativeSrc": "3135:65:18", + "nodeType": "YulExpressionStatement", + "src": "3135:65:18" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2997:210:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3061:9:18", + "nodeType": "YulTypedName", + "src": "3061:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3073:6:18", + "nodeType": "YulTypedName", + "src": "3073:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3084:4:18", + "nodeType": "YulTypedName", + "src": "3084:4:18", + "type": "" + } + ], + "src": "2997:210:18" + }, + { + "body": { + "nativeSrc": "3279:263:18", + "nodeType": "YulBlock", + "src": "3279:263:18", + "statements": [ + { + "body": { + "nativeSrc": "3325:83:18", + "nodeType": "YulBlock", + "src": "3325:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3327:77:18", + "nodeType": "YulIdentifier", + "src": "3327:77:18" + }, + "nativeSrc": "3327:79:18", + "nodeType": "YulFunctionCall", + "src": "3327:79:18" + }, + "nativeSrc": "3327:79:18", + "nodeType": "YulExpressionStatement", + "src": "3327:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3300:7:18", + "nodeType": "YulIdentifier", + "src": "3300:7:18" + }, + { + "name": "headStart", + "nativeSrc": "3309:9:18", + "nodeType": "YulIdentifier", + "src": "3309:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3296:3:18", + "nodeType": "YulIdentifier", + "src": "3296:3:18" + }, + "nativeSrc": "3296:23:18", + "nodeType": "YulFunctionCall", + "src": "3296:23:18" + }, + { + "kind": "number", + "nativeSrc": "3321:2:18", + "nodeType": "YulLiteral", + "src": "3321:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3292:3:18", + "nodeType": "YulIdentifier", + "src": "3292:3:18" + }, + "nativeSrc": "3292:32:18", + "nodeType": "YulFunctionCall", + "src": "3292:32:18" + }, + "nativeSrc": "3289:119:18", + "nodeType": "YulIf", + "src": "3289:119:18" + }, + { + "nativeSrc": "3418:117:18", + "nodeType": "YulBlock", + "src": "3418:117:18", + "statements": [ + { + "nativeSrc": "3433:15:18", + "nodeType": "YulVariableDeclaration", + "src": "3433:15:18", + "value": { + "kind": "number", + "nativeSrc": "3447:1:18", + "nodeType": "YulLiteral", + "src": "3447:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3437:6:18", + "nodeType": "YulTypedName", + "src": "3437:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "3462:63:18", + "nodeType": "YulAssignment", + "src": "3462:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3497:9:18", + "nodeType": "YulIdentifier", + "src": "3497:9:18" + }, + { + "name": "offset", + "nativeSrc": "3508:6:18", + "nodeType": "YulIdentifier", + "src": "3508:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3493:3:18", + "nodeType": "YulIdentifier", + "src": "3493:3:18" + }, + "nativeSrc": "3493:22:18", + "nodeType": "YulFunctionCall", + "src": "3493:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "3517:7:18", + "nodeType": "YulIdentifier", + "src": "3517:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3472:20:18", + "nodeType": "YulIdentifier", + "src": "3472:20:18" + }, + "nativeSrc": "3472:53:18", + "nodeType": "YulFunctionCall", + "src": "3472:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3462:6:18", + "nodeType": "YulIdentifier", + "src": "3462:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3213:329:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3249:9:18", + "nodeType": "YulTypedName", + "src": "3249:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3260:7:18", + "nodeType": "YulTypedName", + "src": "3260:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3272:6:18", + "nodeType": "YulTypedName", + "src": "3272:6:18", + "type": "" + } + ], + "src": "3213:329:18" + }, + { + "body": { + "nativeSrc": "3607:40:18", + "nodeType": "YulBlock", + "src": "3607:40:18", + "statements": [ + { + "nativeSrc": "3618:22:18", + "nodeType": "YulAssignment", + "src": "3618:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3634:5:18", + "nodeType": "YulIdentifier", + "src": "3634:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3628:5:18", + "nodeType": "YulIdentifier", + "src": "3628:5:18" + }, + "nativeSrc": "3628:12:18", + "nodeType": "YulFunctionCall", + "src": "3628:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3618:6:18", + "nodeType": "YulIdentifier", + "src": "3618:6:18" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3548:99:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3590:5:18", + "nodeType": "YulTypedName", + "src": "3590:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3600:6:18", + "nodeType": "YulTypedName", + "src": "3600:6:18", + "type": "" + } + ], + "src": "3548:99:18" + }, + { + "body": { + "nativeSrc": "3749:73:18", + "nodeType": "YulBlock", + "src": "3749:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3766:3:18", + "nodeType": "YulIdentifier", + "src": "3766:3:18" + }, + { + "name": "length", + "nativeSrc": "3771:6:18", + "nodeType": "YulIdentifier", + "src": "3771:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3759:6:18", + "nodeType": "YulIdentifier", + "src": "3759:6:18" + }, + "nativeSrc": "3759:19:18", + "nodeType": "YulFunctionCall", + "src": "3759:19:18" + }, + "nativeSrc": "3759:19:18", + "nodeType": "YulExpressionStatement", + "src": "3759:19:18" + }, + { + "nativeSrc": "3787:29:18", + "nodeType": "YulAssignment", + "src": "3787:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3806:3:18", + "nodeType": "YulIdentifier", + "src": "3806:3:18" + }, + { + "kind": "number", + "nativeSrc": "3811:4:18", + "nodeType": "YulLiteral", + "src": "3811:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3802:3:18", + "nodeType": "YulIdentifier", + "src": "3802:3:18" + }, + "nativeSrc": "3802:14:18", + "nodeType": "YulFunctionCall", + "src": "3802:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "3787:11:18", + "nodeType": "YulIdentifier", + "src": "3787:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "3653:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "3721:3:18", + "nodeType": "YulTypedName", + "src": "3721:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3726:6:18", + "nodeType": "YulTypedName", + "src": "3726:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "3737:11:18", + "nodeType": "YulTypedName", + "src": "3737:11:18", + "type": "" + } + ], + "src": "3653:169:18" + }, + { + "body": { + "nativeSrc": "3890:186:18", + "nodeType": "YulBlock", + "src": "3890:186:18", + "statements": [ + { + "nativeSrc": "3901:10:18", + "nodeType": "YulVariableDeclaration", + "src": "3901:10:18", + "value": { + "kind": "number", + "nativeSrc": "3910:1:18", + "nodeType": "YulLiteral", + "src": "3910:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "3905:1:18", + "nodeType": "YulTypedName", + "src": "3905:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3970:63:18", + "nodeType": "YulBlock", + "src": "3970:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3995:3:18", + "nodeType": "YulIdentifier", + "src": "3995:3:18" + }, + { + "name": "i", + "nativeSrc": "4000:1:18", + "nodeType": "YulIdentifier", + "src": "4000:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3991:3:18", + "nodeType": "YulIdentifier", + "src": "3991:3:18" + }, + "nativeSrc": "3991:11:18", + "nodeType": "YulFunctionCall", + "src": "3991:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4014:3:18", + "nodeType": "YulIdentifier", + "src": "4014:3:18" + }, + { + "name": "i", + "nativeSrc": "4019:1:18", + "nodeType": "YulIdentifier", + "src": "4019:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4010:3:18", + "nodeType": "YulIdentifier", + "src": "4010:3:18" + }, + "nativeSrc": "4010:11:18", + "nodeType": "YulFunctionCall", + "src": "4010:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4004:5:18", + "nodeType": "YulIdentifier", + "src": "4004:5:18" + }, + "nativeSrc": "4004:18:18", + "nodeType": "YulFunctionCall", + "src": "4004:18:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3984:6:18", + "nodeType": "YulIdentifier", + "src": "3984:6:18" + }, + "nativeSrc": "3984:39:18", + "nodeType": "YulFunctionCall", + "src": "3984:39:18" + }, + "nativeSrc": "3984:39:18", + "nodeType": "YulExpressionStatement", + "src": "3984:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3931:1:18", + "nodeType": "YulIdentifier", + "src": "3931:1:18" + }, + { + "name": "length", + "nativeSrc": "3934:6:18", + "nodeType": "YulIdentifier", + "src": "3934:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3928:2:18", + "nodeType": "YulIdentifier", + "src": "3928:2:18" + }, + "nativeSrc": "3928:13:18", + "nodeType": "YulFunctionCall", + "src": "3928:13:18" + }, + "nativeSrc": "3920:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3942:19:18", + "nodeType": "YulBlock", + "src": "3942:19:18", + "statements": [ + { + "nativeSrc": "3944:15:18", + "nodeType": "YulAssignment", + "src": "3944:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3953:1:18", + "nodeType": "YulIdentifier", + "src": "3953:1:18" + }, + { + "kind": "number", + "nativeSrc": "3956:2:18", + "nodeType": "YulLiteral", + "src": "3956:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3949:3:18", + "nodeType": "YulIdentifier", + "src": "3949:3:18" + }, + "nativeSrc": "3949:10:18", + "nodeType": "YulFunctionCall", + "src": "3949:10:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "3944:1:18", + "nodeType": "YulIdentifier", + "src": "3944:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "3924:3:18", + "nodeType": "YulBlock", + "src": "3924:3:18", + "statements": [] + }, + "src": "3920:113:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "4053:3:18", + "nodeType": "YulIdentifier", + "src": "4053:3:18" + }, + { + "name": "length", + "nativeSrc": "4058:6:18", + "nodeType": "YulIdentifier", + "src": "4058:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4049:3:18", + "nodeType": "YulIdentifier", + "src": "4049:3:18" + }, + "nativeSrc": "4049:16:18", + "nodeType": "YulFunctionCall", + "src": "4049:16:18" + }, + { + "kind": "number", + "nativeSrc": "4067:1:18", + "nodeType": "YulLiteral", + "src": "4067:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4042:6:18", + "nodeType": "YulIdentifier", + "src": "4042:6:18" + }, + "nativeSrc": "4042:27:18", + "nodeType": "YulFunctionCall", + "src": "4042:27:18" + }, + "nativeSrc": "4042:27:18", + "nodeType": "YulExpressionStatement", + "src": "4042:27:18" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3828:248:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3872:3:18", + "nodeType": "YulTypedName", + "src": "3872:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3877:3:18", + "nodeType": "YulTypedName", + "src": "3877:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3882:6:18", + "nodeType": "YulTypedName", + "src": "3882:6:18", + "type": "" + } + ], + "src": "3828:248:18" + }, + { + "body": { + "nativeSrc": "4130:54:18", + "nodeType": "YulBlock", + "src": "4130:54:18", + "statements": [ + { + "nativeSrc": "4140:38:18", + "nodeType": "YulAssignment", + "src": "4140:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4158:5:18", + "nodeType": "YulIdentifier", + "src": "4158:5:18" + }, + { + "kind": "number", + "nativeSrc": "4165:2:18", + "nodeType": "YulLiteral", + "src": "4165:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4154:3:18", + "nodeType": "YulIdentifier", + "src": "4154:3:18" + }, + "nativeSrc": "4154:14:18", + "nodeType": "YulFunctionCall", + "src": "4154:14:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4174:2:18", + "nodeType": "YulLiteral", + "src": "4174:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4170:3:18", + "nodeType": "YulIdentifier", + "src": "4170:3:18" + }, + "nativeSrc": "4170:7:18", + "nodeType": "YulFunctionCall", + "src": "4170:7:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4150:3:18", + "nodeType": "YulIdentifier", + "src": "4150:3:18" + }, + "nativeSrc": "4150:28:18", + "nodeType": "YulFunctionCall", + "src": "4150:28:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4140:6:18", + "nodeType": "YulIdentifier", + "src": "4140:6:18" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "4082:102:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4113:5:18", + "nodeType": "YulTypedName", + "src": "4113:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4123:6:18", + "nodeType": "YulTypedName", + "src": "4123:6:18", + "type": "" + } + ], + "src": "4082:102:18" + }, + { + "body": { + "nativeSrc": "4282:285:18", + "nodeType": "YulBlock", + "src": "4282:285:18", + "statements": [ + { + "nativeSrc": "4292:53:18", + "nodeType": "YulVariableDeclaration", + "src": "4292:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4339:5:18", + "nodeType": "YulIdentifier", + "src": "4339:5:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4306:32:18", + "nodeType": "YulIdentifier", + "src": "4306:32:18" + }, + "nativeSrc": "4306:39:18", + "nodeType": "YulFunctionCall", + "src": "4306:39:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "4296:6:18", + "nodeType": "YulTypedName", + "src": "4296:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "4354:78:18", + "nodeType": "YulAssignment", + "src": "4354:78:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4420:3:18", + "nodeType": "YulIdentifier", + "src": "4420:3:18" + }, + { + "name": "length", + "nativeSrc": "4425:6:18", + "nodeType": "YulIdentifier", + "src": "4425:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4361:58:18", + "nodeType": "YulIdentifier", + "src": "4361:58:18" + }, + "nativeSrc": "4361:71:18", + "nodeType": "YulFunctionCall", + "src": "4361:71:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "4354:3:18", + "nodeType": "YulIdentifier", + "src": "4354:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4480:5:18", + "nodeType": "YulIdentifier", + "src": "4480:5:18" + }, + { + "kind": "number", + "nativeSrc": "4487:4:18", + "nodeType": "YulLiteral", + "src": "4487:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4476:3:18", + "nodeType": "YulIdentifier", + "src": "4476:3:18" + }, + "nativeSrc": "4476:16:18", + "nodeType": "YulFunctionCall", + "src": "4476:16:18" + }, + { + "name": "pos", + "nativeSrc": "4494:3:18", + "nodeType": "YulIdentifier", + "src": "4494:3:18" + }, + { + "name": "length", + "nativeSrc": "4499:6:18", + "nodeType": "YulIdentifier", + "src": "4499:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4441:34:18", + "nodeType": "YulIdentifier", + "src": "4441:34:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulFunctionCall", + "src": "4441:65:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulExpressionStatement", + "src": "4441:65:18" + }, + { + "nativeSrc": "4515:46:18", + "nodeType": "YulAssignment", + "src": "4515:46:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4526:3:18", + "nodeType": "YulIdentifier", + "src": "4526:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4553:6:18", + "nodeType": "YulIdentifier", + "src": "4553:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "4531:21:18", + "nodeType": "YulIdentifier", + "src": "4531:21:18" + }, + "nativeSrc": "4531:29:18", + "nodeType": "YulFunctionCall", + "src": "4531:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4522:3:18", + "nodeType": "YulIdentifier", + "src": "4522:3:18" + }, + "nativeSrc": "4522:39:18", + "nodeType": "YulFunctionCall", + "src": "4522:39:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "4515:3:18", + "nodeType": "YulIdentifier", + "src": "4515:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4190:377:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4263:5:18", + "nodeType": "YulTypedName", + "src": "4263:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4270:3:18", + "nodeType": "YulTypedName", + "src": "4270:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4278:3:18", + "nodeType": "YulTypedName", + "src": "4278:3:18", + "type": "" + } + ], + "src": "4190:377:18" + }, + { + "body": { + "nativeSrc": "4691:195:18", + "nodeType": "YulBlock", + "src": "4691:195:18", + "statements": [ + { + "nativeSrc": "4701:26:18", + "nodeType": "YulAssignment", + "src": "4701:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4713:9:18", + "nodeType": "YulIdentifier", + "src": "4713:9:18" + }, + { + "kind": "number", + "nativeSrc": "4724:2:18", + "nodeType": "YulLiteral", + "src": "4724:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:18", + "nodeType": "YulIdentifier", + "src": "4709:3:18" + }, + "nativeSrc": "4709:18:18", + "nodeType": "YulFunctionCall", + "src": "4709:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4701:4:18", + "nodeType": "YulIdentifier", + "src": "4701:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4748:9:18", + "nodeType": "YulIdentifier", + "src": "4748:9:18" + }, + { + "kind": "number", + "nativeSrc": "4759:1:18", + "nodeType": "YulLiteral", + "src": "4759:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4744:3:18", + "nodeType": "YulIdentifier", + "src": "4744:3:18" + }, + "nativeSrc": "4744:17:18", + "nodeType": "YulFunctionCall", + "src": "4744:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "4767:4:18", + "nodeType": "YulIdentifier", + "src": "4767:4:18" + }, + { + "name": "headStart", + "nativeSrc": "4773:9:18", + "nodeType": "YulIdentifier", + "src": "4773:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4763:3:18", + "nodeType": "YulIdentifier", + "src": "4763:3:18" + }, + "nativeSrc": "4763:20:18", + "nodeType": "YulFunctionCall", + "src": "4763:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4737:6:18", + "nodeType": "YulIdentifier", + "src": "4737:6:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulFunctionCall", + "src": "4737:47:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulExpressionStatement", + "src": "4737:47:18" + }, + { + "nativeSrc": "4793:86:18", + "nodeType": "YulAssignment", + "src": "4793:86:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4865:6:18", + "nodeType": "YulIdentifier", + "src": "4865:6:18" + }, + { + "name": "tail", + "nativeSrc": "4874:4:18", + "nodeType": "YulIdentifier", + "src": "4874:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4801:63:18", + "nodeType": "YulIdentifier", + "src": "4801:63:18" + }, + "nativeSrc": "4801:78:18", + "nodeType": "YulFunctionCall", + "src": "4801:78:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4793:4:18", + "nodeType": "YulIdentifier", + "src": "4793:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "4573:313:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4663:9:18", + "nodeType": "YulTypedName", + "src": "4663:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4675:6:18", + "nodeType": "YulTypedName", + "src": "4675:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4686:4:18", + "nodeType": "YulTypedName", + "src": "4686:4:18", + "type": "" + } + ], + "src": "4573:313:18" + }, + { + "body": { + "nativeSrc": "4937:32:18", + "nodeType": "YulBlock", + "src": "4937:32:18", + "statements": [ + { + "nativeSrc": "4947:16:18", + "nodeType": "YulAssignment", + "src": "4947:16:18", + "value": { + "name": "value", + "nativeSrc": "4958:5:18", + "nodeType": "YulIdentifier", + "src": "4958:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4947:7:18", + "nodeType": "YulIdentifier", + "src": "4947:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "4892:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4919:5:18", + "nodeType": "YulTypedName", + "src": "4919:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4929:7:18", + "nodeType": "YulTypedName", + "src": "4929:7:18", + "type": "" + } + ], + "src": "4892:77:18" + }, + { + "body": { + "nativeSrc": "5018:79:18", + "nodeType": "YulBlock", + "src": "5018:79:18", + "statements": [ + { + "body": { + "nativeSrc": "5075:16:18", + "nodeType": "YulBlock", + "src": "5075:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5084:1:18", + "nodeType": "YulLiteral", + "src": "5084:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5087:1:18", + "nodeType": "YulLiteral", + "src": "5087:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5077:6:18", + "nodeType": "YulIdentifier", + "src": "5077:6:18" + }, + "nativeSrc": "5077:12:18", + "nodeType": "YulFunctionCall", + "src": "5077:12:18" + }, + "nativeSrc": "5077:12:18", + "nodeType": "YulExpressionStatement", + "src": "5077:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5041:5:18", + "nodeType": "YulIdentifier", + "src": "5041:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5066:5:18", + "nodeType": "YulIdentifier", + "src": "5066:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5048:17:18", + "nodeType": "YulIdentifier", + "src": "5048:17:18" + }, + "nativeSrc": "5048:24:18", + "nodeType": "YulFunctionCall", + "src": "5048:24:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5038:2:18", + "nodeType": "YulIdentifier", + "src": "5038:2:18" + }, + "nativeSrc": "5038:35:18", + "nodeType": "YulFunctionCall", + "src": "5038:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5031:6:18", + "nodeType": "YulIdentifier", + "src": "5031:6:18" + }, + "nativeSrc": "5031:43:18", + "nodeType": "YulFunctionCall", + "src": "5031:43:18" + }, + "nativeSrc": "5028:63:18", + "nodeType": "YulIf", + "src": "5028:63:18" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "4975:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5011:5:18", + "nodeType": "YulTypedName", + "src": "5011:5:18", + "type": "" + } + ], + "src": "4975:122:18" + }, + { + "body": { + "nativeSrc": "5155:87:18", + "nodeType": "YulBlock", + "src": "5155:87:18", + "statements": [ + { + "nativeSrc": "5165:29:18", + "nodeType": "YulAssignment", + "src": "5165:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5187:6:18", + "nodeType": "YulIdentifier", + "src": "5187:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5174:12:18", + "nodeType": "YulIdentifier", + "src": "5174:12:18" + }, + "nativeSrc": "5174:20:18", + "nodeType": "YulFunctionCall", + "src": "5174:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5165:5:18", + "nodeType": "YulIdentifier", + "src": "5165:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5230:5:18", + "nodeType": "YulIdentifier", + "src": "5230:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "5203:26:18", + "nodeType": "YulIdentifier", + "src": "5203:26:18" + }, + "nativeSrc": "5203:33:18", + "nodeType": "YulFunctionCall", + "src": "5203:33:18" + }, + "nativeSrc": "5203:33:18", + "nodeType": "YulExpressionStatement", + "src": "5203:33:18" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "5103:139:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "5133:6:18", + "nodeType": "YulTypedName", + "src": "5133:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5141:3:18", + "nodeType": "YulTypedName", + "src": "5141:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "5149:5:18", + "nodeType": "YulTypedName", + "src": "5149:5:18", + "type": "" + } + ], + "src": "5103:139:18" + }, + { + "body": { + "nativeSrc": "5314:263:18", + "nodeType": "YulBlock", + "src": "5314:263:18", + "statements": [ + { + "body": { + "nativeSrc": "5360:83:18", + "nodeType": "YulBlock", + "src": "5360:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5362:77:18", + "nodeType": "YulIdentifier", + "src": "5362:77:18" + }, + "nativeSrc": "5362:79:18", + "nodeType": "YulFunctionCall", + "src": "5362:79:18" + }, + "nativeSrc": "5362:79:18", + "nodeType": "YulExpressionStatement", + "src": "5362:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5335:7:18", + "nodeType": "YulIdentifier", + "src": "5335:7:18" + }, + { + "name": "headStart", + "nativeSrc": "5344:9:18", + "nodeType": "YulIdentifier", + "src": "5344:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5331:3:18", + "nodeType": "YulIdentifier", + "src": "5331:3:18" + }, + "nativeSrc": "5331:23:18", + "nodeType": "YulFunctionCall", + "src": "5331:23:18" + }, + { + "kind": "number", + "nativeSrc": "5356:2:18", + "nodeType": "YulLiteral", + "src": "5356:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5327:3:18", + "nodeType": "YulIdentifier", + "src": "5327:3:18" + }, + "nativeSrc": "5327:32:18", + "nodeType": "YulFunctionCall", + "src": "5327:32:18" + }, + "nativeSrc": "5324:119:18", + "nodeType": "YulIf", + "src": "5324:119:18" + }, + { + "nativeSrc": "5453:117:18", + "nodeType": "YulBlock", + "src": "5453:117:18", + "statements": [ + { + "nativeSrc": "5468:15:18", + "nodeType": "YulVariableDeclaration", + "src": "5468:15:18", + "value": { + "kind": "number", + "nativeSrc": "5482:1:18", + "nodeType": "YulLiteral", + "src": "5482:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5472:6:18", + "nodeType": "YulTypedName", + "src": "5472:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "5497:63:18", + "nodeType": "YulAssignment", + "src": "5497:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5532:9:18", + "nodeType": "YulIdentifier", + "src": "5532:9:18" + }, + { + "name": "offset", + "nativeSrc": "5543:6:18", + "nodeType": "YulIdentifier", + "src": "5543:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5528:3:18", + "nodeType": "YulIdentifier", + "src": "5528:3:18" + }, + "nativeSrc": "5528:22:18", + "nodeType": "YulFunctionCall", + "src": "5528:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "5552:7:18", + "nodeType": "YulIdentifier", + "src": "5552:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "5507:20:18", + "nodeType": "YulIdentifier", + "src": "5507:20:18" + }, + "nativeSrc": "5507:53:18", + "nodeType": "YulFunctionCall", + "src": "5507:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5497:6:18", + "nodeType": "YulIdentifier", + "src": "5497:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "5248:329:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5284:9:18", + "nodeType": "YulTypedName", + "src": "5284:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5295:7:18", + "nodeType": "YulTypedName", + "src": "5295:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5307:6:18", + "nodeType": "YulTypedName", + "src": "5307:6:18", + "type": "" + } + ], + "src": "5248:329:18" + }, + { + "body": { + "nativeSrc": "5648:53:18", + "nodeType": "YulBlock", + "src": "5648:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5665:3:18", + "nodeType": "YulIdentifier", + "src": "5665:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5688:5:18", + "nodeType": "YulIdentifier", + "src": "5688:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5670:17:18", + "nodeType": "YulIdentifier", + "src": "5670:17:18" + }, + "nativeSrc": "5670:24:18", + "nodeType": "YulFunctionCall", + "src": "5670:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5658:6:18", + "nodeType": "YulIdentifier", + "src": "5658:6:18" + }, + "nativeSrc": "5658:37:18", + "nodeType": "YulFunctionCall", + "src": "5658:37:18" + }, + "nativeSrc": "5658:37:18", + "nodeType": "YulExpressionStatement", + "src": "5658:37:18" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5583:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5636:5:18", + "nodeType": "YulTypedName", + "src": "5636:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5643:3:18", + "nodeType": "YulTypedName", + "src": "5643:3:18", + "type": "" + } + ], + "src": "5583:118:18" + }, + { + "body": { + "nativeSrc": "5805:124:18", + "nodeType": "YulBlock", + "src": "5805:124:18", + "statements": [ + { + "nativeSrc": "5815:26:18", + "nodeType": "YulAssignment", + "src": "5815:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5827:9:18", + "nodeType": "YulIdentifier", + "src": "5827:9:18" + }, + { + "kind": "number", + "nativeSrc": "5838:2:18", + "nodeType": "YulLiteral", + "src": "5838:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5823:3:18", + "nodeType": "YulIdentifier", + "src": "5823:3:18" + }, + "nativeSrc": "5823:18:18", + "nodeType": "YulFunctionCall", + "src": "5823:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5815:4:18", + "nodeType": "YulIdentifier", + "src": "5815:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5895:6:18", + "nodeType": "YulIdentifier", + "src": "5895:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5908:9:18", + "nodeType": "YulIdentifier", + "src": "5908:9:18" + }, + { + "kind": "number", + "nativeSrc": "5919:1:18", + "nodeType": "YulLiteral", + "src": "5919:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5904:3:18", + "nodeType": "YulIdentifier", + "src": "5904:3:18" + }, + "nativeSrc": "5904:17:18", + "nodeType": "YulFunctionCall", + "src": "5904:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5851:43:18", + "nodeType": "YulIdentifier", + "src": "5851:43:18" + }, + "nativeSrc": "5851:71:18", + "nodeType": "YulFunctionCall", + "src": "5851:71:18" + }, + "nativeSrc": "5851:71:18", + "nodeType": "YulExpressionStatement", + "src": "5851:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5707:222:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5777:9:18", + "nodeType": "YulTypedName", + "src": "5777:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5789:6:18", + "nodeType": "YulTypedName", + "src": "5789:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5800:4:18", + "nodeType": "YulTypedName", + "src": "5800:4:18", + "type": "" + } + ], + "src": "5707:222:18" + }, + { + "body": { + "nativeSrc": "6024:28:18", + "nodeType": "YulBlock", + "src": "6024:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6041:1:18", + "nodeType": "YulLiteral", + "src": "6041:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6044:1:18", + "nodeType": "YulLiteral", + "src": "6044:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6034:6:18", + "nodeType": "YulIdentifier", + "src": "6034:6:18" + }, + "nativeSrc": "6034:12:18", + "nodeType": "YulFunctionCall", + "src": "6034:12:18" + }, + "nativeSrc": "6034:12:18", + "nodeType": "YulExpressionStatement", + "src": "6034:12:18" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5935:117:18", + "nodeType": "YulFunctionDefinition", + "src": "5935:117:18" + }, + { + "body": { + "nativeSrc": "6086:152:18", + "nodeType": "YulBlock", + "src": "6086:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6103:1:18", + "nodeType": "YulLiteral", + "src": "6103:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6106:77:18", + "nodeType": "YulLiteral", + "src": "6106:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6096:6:18", + "nodeType": "YulIdentifier", + "src": "6096:6:18" + }, + "nativeSrc": "6096:88:18", + "nodeType": "YulFunctionCall", + "src": "6096:88:18" + }, + "nativeSrc": "6096:88:18", + "nodeType": "YulExpressionStatement", + "src": "6096:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6200:1:18", + "nodeType": "YulLiteral", + "src": "6200:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6203:4:18", + "nodeType": "YulLiteral", + "src": "6203:4:18", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6193:6:18", + "nodeType": "YulIdentifier", + "src": "6193:6:18" + }, + "nativeSrc": "6193:15:18", + "nodeType": "YulFunctionCall", + "src": "6193:15:18" + }, + "nativeSrc": "6193:15:18", + "nodeType": "YulExpressionStatement", + "src": "6193:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6224:1:18", + "nodeType": "YulLiteral", + "src": "6224:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6227:4:18", + "nodeType": "YulLiteral", + "src": "6227:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6217:6:18", + "nodeType": "YulIdentifier", + "src": "6217:6:18" + }, + "nativeSrc": "6217:15:18", + "nodeType": "YulFunctionCall", + "src": "6217:15:18" + }, + "nativeSrc": "6217:15:18", + "nodeType": "YulExpressionStatement", + "src": "6217:15:18" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6058:180:18", + "nodeType": "YulFunctionDefinition", + "src": "6058:180:18" + }, + { + "body": { + "nativeSrc": "6287:238:18", + "nodeType": "YulBlock", + "src": "6287:238:18", + "statements": [ + { + "nativeSrc": "6297:58:18", + "nodeType": "YulVariableDeclaration", + "src": "6297:58:18", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6319:6:18", + "nodeType": "YulIdentifier", + "src": "6319:6:18" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6349:4:18", + "nodeType": "YulIdentifier", + "src": "6349:4:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6327:21:18", + "nodeType": "YulIdentifier", + "src": "6327:21:18" + }, + "nativeSrc": "6327:27:18", + "nodeType": "YulFunctionCall", + "src": "6327:27:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6315:3:18", + "nodeType": "YulIdentifier", + "src": "6315:3:18" + }, + "nativeSrc": "6315:40:18", + "nodeType": "YulFunctionCall", + "src": "6315:40:18" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6301:10:18", + "nodeType": "YulTypedName", + "src": "6301:10:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6466:22:18", + "nodeType": "YulBlock", + "src": "6466:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6468:16:18", + "nodeType": "YulIdentifier", + "src": "6468:16:18" + }, + "nativeSrc": "6468:18:18", + "nodeType": "YulFunctionCall", + "src": "6468:18:18" + }, + "nativeSrc": "6468:18:18", + "nodeType": "YulExpressionStatement", + "src": "6468:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6409:10:18", + "nodeType": "YulIdentifier", + "src": "6409:10:18" + }, + { + "kind": "number", + "nativeSrc": "6421:18:18", + "nodeType": "YulLiteral", + "src": "6421:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6406:2:18", + "nodeType": "YulIdentifier", + "src": "6406:2:18" + }, + "nativeSrc": "6406:34:18", + "nodeType": "YulFunctionCall", + "src": "6406:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6445:10:18", + "nodeType": "YulIdentifier", + "src": "6445:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "6457:6:18", + "nodeType": "YulIdentifier", + "src": "6457:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6442:2:18", + "nodeType": "YulIdentifier", + "src": "6442:2:18" + }, + "nativeSrc": "6442:22:18", + "nodeType": "YulFunctionCall", + "src": "6442:22:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6403:2:18", + "nodeType": "YulIdentifier", + "src": "6403:2:18" + }, + "nativeSrc": "6403:62:18", + "nodeType": "YulFunctionCall", + "src": "6403:62:18" + }, + "nativeSrc": "6400:88:18", + "nodeType": "YulIf", + "src": "6400:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6504:2:18", + "nodeType": "YulLiteral", + "src": "6504:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6508:10:18", + "nodeType": "YulIdentifier", + "src": "6508:10:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6497:6:18", + "nodeType": "YulIdentifier", + "src": "6497:6:18" + }, + "nativeSrc": "6497:22:18", + "nodeType": "YulFunctionCall", + "src": "6497:22:18" + }, + "nativeSrc": "6497:22:18", + "nodeType": "YulExpressionStatement", + "src": "6497:22:18" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6244:281:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6273:6:18", + "nodeType": "YulTypedName", + "src": "6273:6:18", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6281:4:18", + "nodeType": "YulTypedName", + "src": "6281:4:18", + "type": "" + } + ], + "src": "6244:281:18" + }, + { + "body": { + "nativeSrc": "6572:88:18", + "nodeType": "YulBlock", + "src": "6572:88:18", + "statements": [ + { + "nativeSrc": "6582:30:18", + "nodeType": "YulAssignment", + "src": "6582:30:18", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6592:18:18", + "nodeType": "YulIdentifier", + "src": "6592:18:18" + }, + "nativeSrc": "6592:20:18", + "nodeType": "YulFunctionCall", + "src": "6592:20:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6582:6:18", + "nodeType": "YulIdentifier", + "src": "6582:6:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6641:6:18", + "nodeType": "YulIdentifier", + "src": "6641:6:18" + }, + { + "name": "size", + "nativeSrc": "6649:4:18", + "nodeType": "YulIdentifier", + "src": "6649:4:18" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "6621:19:18", + "nodeType": "YulIdentifier", + "src": "6621:19:18" + }, + "nativeSrc": "6621:33:18", + "nodeType": "YulFunctionCall", + "src": "6621:33:18" + }, + "nativeSrc": "6621:33:18", + "nodeType": "YulExpressionStatement", + "src": "6621:33:18" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6531:129:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6556:4:18", + "nodeType": "YulTypedName", + "src": "6556:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6565:6:18", + "nodeType": "YulTypedName", + "src": "6565:6:18", + "type": "" + } + ], + "src": "6531:129:18" + }, + { + "body": { + "nativeSrc": "6748:229:18", + "nodeType": "YulBlock", + "src": "6748:229:18", + "statements": [ + { + "body": { + "nativeSrc": "6853:22:18", + "nodeType": "YulBlock", + "src": "6853:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6855:16:18", + "nodeType": "YulIdentifier", + "src": "6855:16:18" + }, + "nativeSrc": "6855:18:18", + "nodeType": "YulFunctionCall", + "src": "6855:18:18" + }, + "nativeSrc": "6855:18:18", + "nodeType": "YulExpressionStatement", + "src": "6855:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6825:6:18", + "nodeType": "YulIdentifier", + "src": "6825:6:18" + }, + { + "kind": "number", + "nativeSrc": "6833:18:18", + "nodeType": "YulLiteral", + "src": "6833:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6822:2:18", + "nodeType": "YulIdentifier", + "src": "6822:2:18" + }, + "nativeSrc": "6822:30:18", + "nodeType": "YulFunctionCall", + "src": "6822:30:18" + }, + "nativeSrc": "6819:56:18", + "nodeType": "YulIf", + "src": "6819:56:18" + }, + { + "nativeSrc": "6885:25:18", + "nodeType": "YulAssignment", + "src": "6885:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6897:6:18", + "nodeType": "YulIdentifier", + "src": "6897:6:18" + }, + { + "kind": "number", + "nativeSrc": "6905:4:18", + "nodeType": "YulLiteral", + "src": "6905:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6893:3:18", + "nodeType": "YulIdentifier", + "src": "6893:3:18" + }, + "nativeSrc": "6893:17:18", + "nodeType": "YulFunctionCall", + "src": "6893:17:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6885:4:18", + "nodeType": "YulIdentifier", + "src": "6885:4:18" + } + ] + }, + { + "nativeSrc": "6947:23:18", + "nodeType": "YulAssignment", + "src": "6947:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "6959:4:18", + "nodeType": "YulIdentifier", + "src": "6959:4:18" + }, + { + "kind": "number", + "nativeSrc": "6965:4:18", + "nodeType": "YulLiteral", + "src": "6965:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6955:3:18", + "nodeType": "YulIdentifier", + "src": "6955:3:18" + }, + "nativeSrc": "6955:15:18", + "nodeType": "YulFunctionCall", + "src": "6955:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6947:4:18", + "nodeType": "YulIdentifier", + "src": "6947:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "6666:311:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "6732:6:18", + "nodeType": "YulTypedName", + "src": "6732:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "6743:4:18", + "nodeType": "YulTypedName", + "src": "6743:4:18", + "type": "" + } + ], + "src": "6666:311:18" + }, + { + "body": { + "nativeSrc": "7072:28:18", + "nodeType": "YulBlock", + "src": "7072:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7089:1:18", + "nodeType": "YulLiteral", + "src": "7089:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7092:1:18", + "nodeType": "YulLiteral", + "src": "7092:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7082:6:18", + "nodeType": "YulIdentifier", + "src": "7082:6:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulFunctionCall", + "src": "7082:12:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulExpressionStatement", + "src": "7082:12:18" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "6983:117:18", + "nodeType": "YulFunctionDefinition", + "src": "6983:117:18" + }, + { + "body": { + "nativeSrc": "7225:608:18", + "nodeType": "YulBlock", + "src": "7225:608:18", + "statements": [ + { + "nativeSrc": "7235:90:18", + "nodeType": "YulAssignment", + "src": "7235:90:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7317:6:18", + "nodeType": "YulIdentifier", + "src": "7317:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7260:56:18", + "nodeType": "YulIdentifier", + "src": "7260:56:18" + }, + "nativeSrc": "7260:64:18", + "nodeType": "YulFunctionCall", + "src": "7260:64:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7244:15:18", + "nodeType": "YulIdentifier", + "src": "7244:15:18" + }, + "nativeSrc": "7244:81:18", + "nodeType": "YulFunctionCall", + "src": "7244:81:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7235:5:18", + "nodeType": "YulIdentifier", + "src": "7235:5:18" + } + ] + }, + { + "nativeSrc": "7334:16:18", + "nodeType": "YulVariableDeclaration", + "src": "7334:16:18", + "value": { + "name": "array", + "nativeSrc": "7345:5:18", + "nodeType": "YulIdentifier", + "src": "7345:5:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7338:3:18", + "nodeType": "YulTypedName", + "src": "7338:3:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7367:5:18", + "nodeType": "YulIdentifier", + "src": "7367:5:18" + }, + { + "name": "length", + "nativeSrc": "7374:6:18", + "nodeType": "YulIdentifier", + "src": "7374:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7360:6:18", + "nodeType": "YulIdentifier", + "src": "7360:6:18" + }, + "nativeSrc": "7360:21:18", + "nodeType": "YulFunctionCall", + "src": "7360:21:18" + }, + "nativeSrc": "7360:21:18", + "nodeType": "YulExpressionStatement", + "src": "7360:21:18" + }, + { + "nativeSrc": "7390:23:18", + "nodeType": "YulAssignment", + "src": "7390:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7401:5:18", + "nodeType": "YulIdentifier", + "src": "7401:5:18" + }, + { + "kind": "number", + "nativeSrc": "7408:4:18", + "nodeType": "YulLiteral", + "src": "7408:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7397:3:18", + "nodeType": "YulIdentifier", + "src": "7397:3:18" + }, + "nativeSrc": "7397:16:18", + "nodeType": "YulFunctionCall", + "src": "7397:16:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7390:3:18", + "nodeType": "YulIdentifier", + "src": "7390:3:18" + } + ] + }, + { + "nativeSrc": "7423:44:18", + "nodeType": "YulVariableDeclaration", + "src": "7423:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7441:6:18", + "nodeType": "YulIdentifier", + "src": "7441:6:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7453:6:18", + "nodeType": "YulIdentifier", + "src": "7453:6:18" + }, + { + "kind": "number", + "nativeSrc": "7461:4:18", + "nodeType": "YulLiteral", + "src": "7461:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7449:3:18", + "nodeType": "YulIdentifier", + "src": "7449:3:18" + }, + "nativeSrc": "7449:17:18", + "nodeType": "YulFunctionCall", + "src": "7449:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7437:3:18", + "nodeType": "YulIdentifier", + "src": "7437:3:18" + }, + "nativeSrc": "7437:30:18", + "nodeType": "YulFunctionCall", + "src": "7437:30:18" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "7427:6:18", + "nodeType": "YulTypedName", + "src": "7427:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7495:103:18", + "nodeType": "YulBlock", + "src": "7495:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "7509:77:18", + "nodeType": "YulIdentifier", + "src": "7509:77:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulFunctionCall", + "src": "7509:79:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulExpressionStatement", + "src": "7509:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "7482:6:18", + "nodeType": "YulIdentifier", + "src": "7482:6:18" + }, + { + "name": "end", + "nativeSrc": "7490:3:18", + "nodeType": "YulIdentifier", + "src": "7490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7479:2:18", + "nodeType": "YulIdentifier", + "src": "7479:2:18" + }, + "nativeSrc": "7479:15:18", + "nodeType": "YulFunctionCall", + "src": "7479:15:18" + }, + "nativeSrc": "7476:122:18", + "nodeType": "YulIf", + "src": "7476:122:18" + }, + { + "body": { + "nativeSrc": "7683:144:18", + "nodeType": "YulBlock", + "src": "7683:144:18", + "statements": [ + { + "nativeSrc": "7698:21:18", + "nodeType": "YulVariableDeclaration", + "src": "7698:21:18", + "value": { + "name": "src", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "7702:10:18", + "nodeType": "YulTypedName", + "src": "7702:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7740:3:18", + "nodeType": "YulIdentifier", + "src": "7740:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "7766:10:18", + "nodeType": "YulIdentifier", + "src": "7766:10:18" + }, + { + "name": "end", + "nativeSrc": "7778:3:18", + "nodeType": "YulIdentifier", + "src": "7778:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "7745:20:18", + "nodeType": "YulIdentifier", + "src": "7745:20:18" + }, + "nativeSrc": "7745:37:18", + "nodeType": "YulFunctionCall", + "src": "7745:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7733:6:18", + "nodeType": "YulIdentifier", + "src": "7733:6:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulFunctionCall", + "src": "7733:50:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulExpressionStatement", + "src": "7733:50:18" + }, + { + "nativeSrc": "7796:21:18", + "nodeType": "YulAssignment", + "src": "7796:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7807:3:18", + "nodeType": "YulIdentifier", + "src": "7807:3:18" + }, + { + "kind": "number", + "nativeSrc": "7812:4:18", + "nodeType": "YulLiteral", + "src": "7812:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7803:3:18", + "nodeType": "YulIdentifier", + "src": "7803:3:18" + }, + "nativeSrc": "7803:14:18", + "nodeType": "YulFunctionCall", + "src": "7803:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7796:3:18", + "nodeType": "YulIdentifier", + "src": "7796:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7636:3:18", + "nodeType": "YulIdentifier", + "src": "7636:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "7641:6:18", + "nodeType": "YulIdentifier", + "src": "7641:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7633:2:18", + "nodeType": "YulIdentifier", + "src": "7633:2:18" + }, + "nativeSrc": "7633:15:18", + "nodeType": "YulFunctionCall", + "src": "7633:15:18" + }, + "nativeSrc": "7607:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7649:25:18", + "nodeType": "YulBlock", + "src": "7649:25:18", + "statements": [ + { + "nativeSrc": "7651:21:18", + "nodeType": "YulAssignment", + "src": "7651:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7662:3:18", + "nodeType": "YulIdentifier", + "src": "7662:3:18" + }, + { + "kind": "number", + "nativeSrc": "7667:4:18", + "nodeType": "YulLiteral", + "src": "7667:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7658:3:18", + "nodeType": "YulIdentifier", + "src": "7658:3:18" + }, + "nativeSrc": "7658:14:18", + "nodeType": "YulFunctionCall", + "src": "7658:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "7651:3:18", + "nodeType": "YulIdentifier", + "src": "7651:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7611:21:18", + "nodeType": "YulBlock", + "src": "7611:21:18", + "statements": [ + { + "nativeSrc": "7613:17:18", + "nodeType": "YulVariableDeclaration", + "src": "7613:17:18", + "value": { + "name": "offset", + "nativeSrc": "7624:6:18", + "nodeType": "YulIdentifier", + "src": "7624:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7617:3:18", + "nodeType": "YulTypedName", + "src": "7617:3:18", + "type": "" + } + ] + } + ] + }, + "src": "7607:220:18" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7123:710:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7195:6:18", + "nodeType": "YulTypedName", + "src": "7195:6:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7203:6:18", + "nodeType": "YulTypedName", + "src": "7203:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7211:3:18", + "nodeType": "YulTypedName", + "src": "7211:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7219:5:18", + "nodeType": "YulTypedName", + "src": "7219:5:18", + "type": "" + } + ], + "src": "7123:710:18" + }, + { + "body": { + "nativeSrc": "7933:293:18", + "nodeType": "YulBlock", + "src": "7933:293:18", + "statements": [ + { + "body": { + "nativeSrc": "7982:83:18", + "nodeType": "YulBlock", + "src": "7982:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7984:77:18", + "nodeType": "YulIdentifier", + "src": "7984:77:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulFunctionCall", + "src": "7984:79:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulExpressionStatement", + "src": "7984:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7961:6:18", + "nodeType": "YulIdentifier", + "src": "7961:6:18" + }, + { + "kind": "number", + "nativeSrc": "7969:4:18", + "nodeType": "YulLiteral", + "src": "7969:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7957:3:18", + "nodeType": "YulIdentifier", + "src": "7957:3:18" + }, + "nativeSrc": "7957:17:18", + "nodeType": "YulFunctionCall", + "src": "7957:17:18" + }, + { + "name": "end", + "nativeSrc": "7976:3:18", + "nodeType": "YulIdentifier", + "src": "7976:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7953:3:18", + "nodeType": "YulIdentifier", + "src": "7953:3:18" + }, + "nativeSrc": "7953:27:18", + "nodeType": "YulFunctionCall", + "src": "7953:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7946:6:18", + "nodeType": "YulIdentifier", + "src": "7946:6:18" + }, + "nativeSrc": "7946:35:18", + "nodeType": "YulFunctionCall", + "src": "7946:35:18" + }, + "nativeSrc": "7943:122:18", + "nodeType": "YulIf", + "src": "7943:122:18" + }, + { + "nativeSrc": "8074:34:18", + "nodeType": "YulVariableDeclaration", + "src": "8074:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8101:6:18", + "nodeType": "YulIdentifier", + "src": "8101:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8088:12:18", + "nodeType": "YulIdentifier", + "src": "8088:12:18" + }, + "nativeSrc": "8088:20:18", + "nodeType": "YulFunctionCall", + "src": "8088:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8078:6:18", + "nodeType": "YulTypedName", + "src": "8078:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "8117:103:18", + "nodeType": "YulAssignment", + "src": "8117:103:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8193:6:18", + "nodeType": "YulIdentifier", + "src": "8193:6:18" + }, + { + "kind": "number", + "nativeSrc": "8201:4:18", + "nodeType": "YulLiteral", + "src": "8201:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8189:3:18", + "nodeType": "YulIdentifier", + "src": "8189:3:18" + }, + "nativeSrc": "8189:17:18", + "nodeType": "YulFunctionCall", + "src": "8189:17:18" + }, + { + "name": "length", + "nativeSrc": "8208:6:18", + "nodeType": "YulIdentifier", + "src": "8208:6:18" + }, + { + "name": "end", + "nativeSrc": "8216:3:18", + "nodeType": "YulIdentifier", + "src": "8216:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "8126:62:18", + "nodeType": "YulIdentifier", + "src": "8126:62:18" + }, + "nativeSrc": "8126:94:18", + "nodeType": "YulFunctionCall", + "src": "8126:94:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8117:5:18", + "nodeType": "YulIdentifier", + "src": "8117:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7856:370:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7911:6:18", + "nodeType": "YulTypedName", + "src": "7911:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7919:3:18", + "nodeType": "YulTypedName", + "src": "7919:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7927:5:18", + "nodeType": "YulTypedName", + "src": "7927:5:18", + "type": "" + } + ], + "src": "7856:370:18" + }, + { + "body": { + "nativeSrc": "8321:28:18", + "nodeType": "YulBlock", + "src": "8321:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8338:1:18", + "nodeType": "YulLiteral", + "src": "8338:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8341:1:18", + "nodeType": "YulLiteral", + "src": "8341:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8331:6:18", + "nodeType": "YulIdentifier", + "src": "8331:6:18" + }, + "nativeSrc": "8331:12:18", + "nodeType": "YulFunctionCall", + "src": "8331:12:18" + }, + "nativeSrc": "8331:12:18", + "nodeType": "YulExpressionStatement", + "src": "8331:12:18" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "8232:117:18", + "nodeType": "YulFunctionDefinition", + "src": "8232:117:18" + }, + { + "body": { + "nativeSrc": "8421:241:18", + "nodeType": "YulBlock", + "src": "8421:241:18", + "statements": [ + { + "body": { + "nativeSrc": "8526:22:18", + "nodeType": "YulBlock", + "src": "8526:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8528:16:18", + "nodeType": "YulIdentifier", + "src": "8528:16:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulFunctionCall", + "src": "8528:18:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulExpressionStatement", + "src": "8528:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8498:6:18", + "nodeType": "YulIdentifier", + "src": "8498:6:18" + }, + { + "kind": "number", + "nativeSrc": "8506:18:18", + "nodeType": "YulLiteral", + "src": "8506:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8495:2:18", + "nodeType": "YulIdentifier", + "src": "8495:2:18" + }, + "nativeSrc": "8495:30:18", + "nodeType": "YulFunctionCall", + "src": "8495:30:18" + }, + "nativeSrc": "8492:56:18", + "nodeType": "YulIf", + "src": "8492:56:18" + }, + { + "nativeSrc": "8558:37:18", + "nodeType": "YulAssignment", + "src": "8558:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8588:6:18", + "nodeType": "YulIdentifier", + "src": "8588:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "8566:21:18", + "nodeType": "YulIdentifier", + "src": "8566:21:18" + }, + "nativeSrc": "8566:29:18", + "nodeType": "YulFunctionCall", + "src": "8566:29:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8558:4:18", + "nodeType": "YulIdentifier", + "src": "8558:4:18" + } + ] + }, + { + "nativeSrc": "8632:23:18", + "nodeType": "YulAssignment", + "src": "8632:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "8644:4:18", + "nodeType": "YulIdentifier", + "src": "8644:4:18" + }, + { + "kind": "number", + "nativeSrc": "8650:4:18", + "nodeType": "YulLiteral", + "src": "8650:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8640:3:18", + "nodeType": "YulIdentifier", + "src": "8640:3:18" + }, + "nativeSrc": "8640:15:18", + "nodeType": "YulFunctionCall", + "src": "8640:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8632:4:18", + "nodeType": "YulIdentifier", + "src": "8632:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8355:307:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "8405:6:18", + "nodeType": "YulTypedName", + "src": "8405:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "8416:4:18", + "nodeType": "YulTypedName", + "src": "8416:4:18", + "type": "" + } + ], + "src": "8355:307:18" + }, + { + "body": { + "nativeSrc": "8732:84:18", + "nodeType": "YulBlock", + "src": "8732:84:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" + }, + { + "name": "src", + "nativeSrc": "8761:3:18", + "nodeType": "YulIdentifier", + "src": "8761:3:18" + }, + { + "name": "length", + "nativeSrc": "8766:6:18", + "nodeType": "YulIdentifier", + "src": "8766:6:18" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8743:12:18", + "nodeType": "YulIdentifier", + "src": "8743:12:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulFunctionCall", + "src": "8743:30:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulExpressionStatement", + "src": "8743:30:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8793:3:18", + "nodeType": "YulIdentifier", + "src": "8793:3:18" + }, + { + "name": "length", + "nativeSrc": "8798:6:18", + "nodeType": "YulIdentifier", + "src": "8798:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8789:3:18", + "nodeType": "YulIdentifier", + "src": "8789:3:18" + }, + "nativeSrc": "8789:16:18", + "nodeType": "YulFunctionCall", + "src": "8789:16:18" + }, + { + "kind": "number", + "nativeSrc": "8807:1:18", + "nodeType": "YulLiteral", + "src": "8807:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8782:6:18", + "nodeType": "YulIdentifier", + "src": "8782:6:18" + }, + "nativeSrc": "8782:27:18", + "nodeType": "YulFunctionCall", + "src": "8782:27:18" + }, + "nativeSrc": "8782:27:18", + "nodeType": "YulExpressionStatement", + "src": "8782:27:18" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8668:148:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8714:3:18", + "nodeType": "YulTypedName", + "src": "8714:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "8719:3:18", + "nodeType": "YulTypedName", + "src": "8719:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8724:6:18", + "nodeType": "YulTypedName", + "src": "8724:6:18", + "type": "" + } + ], + "src": "8668:148:18" + }, + { + "body": { + "nativeSrc": "8905:340:18", + "nodeType": "YulBlock", + "src": "8905:340:18", + "statements": [ + { + "nativeSrc": "8915:74:18", + "nodeType": "YulAssignment", + "src": "8915:74:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8981:6:18", + "nodeType": "YulIdentifier", + "src": "8981:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8940:40:18", + "nodeType": "YulIdentifier", + "src": "8940:40:18" + }, + "nativeSrc": "8940:48:18", + "nodeType": "YulFunctionCall", + "src": "8940:48:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "8924:15:18", + "nodeType": "YulIdentifier", + "src": "8924:15:18" + }, + "nativeSrc": "8924:65:18", + "nodeType": "YulFunctionCall", + "src": "8924:65:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8915:5:18", + "nodeType": "YulIdentifier", + "src": "8915:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "9005:5:18", + "nodeType": "YulIdentifier", + "src": "9005:5:18" + }, + { + "name": "length", + "nativeSrc": "9012:6:18", + "nodeType": "YulIdentifier", + "src": "9012:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8998:6:18", + "nodeType": "YulIdentifier", + "src": "8998:6:18" + }, + "nativeSrc": "8998:21:18", + "nodeType": "YulFunctionCall", + "src": "8998:21:18" + }, + "nativeSrc": "8998:21:18", + "nodeType": "YulExpressionStatement", + "src": "8998:21:18" + }, + { + "nativeSrc": "9028:27:18", + "nodeType": "YulVariableDeclaration", + "src": "9028:27:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "9043:5:18", + "nodeType": "YulIdentifier", + "src": "9043:5:18" + }, + { + "kind": "number", + "nativeSrc": "9050:4:18", + "nodeType": "YulLiteral", + "src": "9050:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9039:3:18", + "nodeType": "YulIdentifier", + "src": "9039:3:18" + }, + "nativeSrc": "9039:16:18", + "nodeType": "YulFunctionCall", + "src": "9039:16:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "9032:3:18", + "nodeType": "YulTypedName", + "src": "9032:3:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9093:83:18", + "nodeType": "YulBlock", + "src": "9093:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "9095:77:18", + "nodeType": "YulIdentifier", + "src": "9095:77:18" + }, + "nativeSrc": "9095:79:18", + "nodeType": "YulFunctionCall", + "src": "9095:79:18" + }, + "nativeSrc": "9095:79:18", + "nodeType": "YulExpressionStatement", + "src": "9095:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9074:3:18", + "nodeType": "YulIdentifier", + "src": "9074:3:18" + }, + { + "name": "length", + "nativeSrc": "9079:6:18", + "nodeType": "YulIdentifier", + "src": "9079:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9070:3:18", + "nodeType": "YulIdentifier", + "src": "9070:3:18" + }, + "nativeSrc": "9070:16:18", + "nodeType": "YulFunctionCall", + "src": "9070:16:18" + }, + { + "name": "end", + "nativeSrc": "9088:3:18", + "nodeType": "YulIdentifier", + "src": "9088:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9067:2:18", + "nodeType": "YulIdentifier", + "src": "9067:2:18" + }, + "nativeSrc": "9067:25:18", + "nodeType": "YulFunctionCall", + "src": "9067:25:18" + }, + "nativeSrc": "9064:112:18", + "nodeType": "YulIf", + "src": "9064:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "9222:3:18", + "nodeType": "YulIdentifier", + "src": "9222:3:18" + }, + { + "name": "dst", + "nativeSrc": "9227:3:18", + "nodeType": "YulIdentifier", + "src": "9227:3:18" + }, + { + "name": "length", + "nativeSrc": "9232:6:18", + "nodeType": "YulIdentifier", + "src": "9232:6:18" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "9185:36:18", + "nodeType": "YulIdentifier", + "src": "9185:36:18" + }, + "nativeSrc": "9185:54:18", + "nodeType": "YulFunctionCall", + "src": "9185:54:18" + }, + "nativeSrc": "9185:54:18", + "nodeType": "YulExpressionStatement", + "src": "9185:54:18" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "8822:423:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8878:3:18", + "nodeType": "YulTypedName", + "src": "8878:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8883:6:18", + "nodeType": "YulTypedName", + "src": "8883:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8891:3:18", + "nodeType": "YulTypedName", + "src": "8891:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8899:5:18", + "nodeType": "YulTypedName", + "src": "8899:5:18", + "type": "" + } + ], + "src": "8822:423:18" + }, + { + "body": { + "nativeSrc": "9325:277:18", + "nodeType": "YulBlock", + "src": "9325:277:18", + "statements": [ + { + "body": { + "nativeSrc": "9374:83:18", + "nodeType": "YulBlock", + "src": "9374:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "9376:77:18", + "nodeType": "YulIdentifier", + "src": "9376:77:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulFunctionCall", + "src": "9376:79:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulExpressionStatement", + "src": "9376:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9353:6:18", + "nodeType": "YulIdentifier", + "src": "9353:6:18" + }, + { + "kind": "number", + "nativeSrc": "9361:4:18", + "nodeType": "YulLiteral", + "src": "9361:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9349:3:18", + "nodeType": "YulIdentifier", + "src": "9349:3:18" + }, + "nativeSrc": "9349:17:18", + "nodeType": "YulFunctionCall", + "src": "9349:17:18" + }, + { + "name": "end", + "nativeSrc": "9368:3:18", + "nodeType": "YulIdentifier", + "src": "9368:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9345:3:18", + "nodeType": "YulIdentifier", + "src": "9345:3:18" + }, + "nativeSrc": "9345:27:18", + "nodeType": "YulFunctionCall", + "src": "9345:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9338:6:18", + "nodeType": "YulIdentifier", + "src": "9338:6:18" + }, + "nativeSrc": "9338:35:18", + "nodeType": "YulFunctionCall", + "src": "9338:35:18" + }, + "nativeSrc": "9335:122:18", + "nodeType": "YulIf", + "src": "9335:122:18" + }, + { + "nativeSrc": "9466:34:18", + "nodeType": "YulVariableDeclaration", + "src": "9466:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9493:6:18", + "nodeType": "YulIdentifier", + "src": "9493:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9480:12:18", + "nodeType": "YulIdentifier", + "src": "9480:12:18" + }, + "nativeSrc": "9480:20:18", + "nodeType": "YulFunctionCall", + "src": "9480:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9470:6:18", + "nodeType": "YulTypedName", + "src": "9470:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "9509:87:18", + "nodeType": "YulAssignment", + "src": "9509:87:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9569:6:18", + "nodeType": "YulIdentifier", + "src": "9569:6:18" + }, + { + "kind": "number", + "nativeSrc": "9577:4:18", + "nodeType": "YulLiteral", + "src": "9577:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9565:3:18", + "nodeType": "YulIdentifier", + "src": "9565:3:18" + }, + "nativeSrc": "9565:17:18", + "nodeType": "YulFunctionCall", + "src": "9565:17:18" + }, + { + "name": "length", + "nativeSrc": "9584:6:18", + "nodeType": "YulIdentifier", + "src": "9584:6:18" + }, + { + "name": "end", + "nativeSrc": "9592:3:18", + "nodeType": "YulIdentifier", + "src": "9592:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9518:46:18", + "nodeType": "YulIdentifier", + "src": "9518:46:18" + }, + "nativeSrc": "9518:78:18", + "nodeType": "YulFunctionCall", + "src": "9518:78:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9509:5:18", + "nodeType": "YulIdentifier", + "src": "9509:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "9264:338:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "9303:6:18", + "nodeType": "YulTypedName", + "src": "9303:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9311:3:18", + "nodeType": "YulTypedName", + "src": "9311:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9319:5:18", + "nodeType": "YulTypedName", + "src": "9319:5:18", + "type": "" + } + ], + "src": "9264:338:18" + }, + { + "body": { + "nativeSrc": "9801:1316:18", + "nodeType": "YulBlock", + "src": "9801:1316:18", + "statements": [ + { + "body": { + "nativeSrc": "9848:83:18", + "nodeType": "YulBlock", + "src": "9848:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9850:77:18", + "nodeType": "YulIdentifier", + "src": "9850:77:18" + }, + "nativeSrc": "9850:79:18", + "nodeType": "YulFunctionCall", + "src": "9850:79:18" + }, + "nativeSrc": "9850:79:18", + "nodeType": "YulExpressionStatement", + "src": "9850:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9822:7:18", + "nodeType": "YulIdentifier", + "src": "9822:7:18" + }, + { + "name": "headStart", + "nativeSrc": "9831:9:18", + "nodeType": "YulIdentifier", + "src": "9831:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9818:3:18", + "nodeType": "YulIdentifier", + "src": "9818:3:18" + }, + "nativeSrc": "9818:23:18", + "nodeType": "YulFunctionCall", + "src": "9818:23:18" + }, + { + "kind": "number", + "nativeSrc": "9843:3:18", + "nodeType": "YulLiteral", + "src": "9843:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9814:3:18", + "nodeType": "YulIdentifier", + "src": "9814:3:18" + }, + "nativeSrc": "9814:33:18", + "nodeType": "YulFunctionCall", + "src": "9814:33:18" + }, + "nativeSrc": "9811:120:18", + "nodeType": "YulIf", + "src": "9811:120:18" + }, + { + "nativeSrc": "9941:117:18", + "nodeType": "YulBlock", + "src": "9941:117:18", + "statements": [ + { + "nativeSrc": "9956:15:18", + "nodeType": "YulVariableDeclaration", + "src": "9956:15:18", + "value": { + "kind": "number", + "nativeSrc": "9970:1:18", + "nodeType": "YulLiteral", + "src": "9970:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9960:6:18", + "nodeType": "YulTypedName", + "src": "9960:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "9985:63:18", + "nodeType": "YulAssignment", + "src": "9985:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10020:9:18", + "nodeType": "YulIdentifier", + "src": "10020:9:18" + }, + { + "name": "offset", + "nativeSrc": "10031:6:18", + "nodeType": "YulIdentifier", + "src": "10031:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10016:3:18", + "nodeType": "YulIdentifier", + "src": "10016:3:18" + }, + "nativeSrc": "10016:22:18", + "nodeType": "YulFunctionCall", + "src": "10016:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10040:7:18", + "nodeType": "YulIdentifier", + "src": "10040:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9995:20:18", + "nodeType": "YulIdentifier", + "src": "9995:20:18" + }, + "nativeSrc": "9995:53:18", + "nodeType": "YulFunctionCall", + "src": "9995:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9985:6:18", + "nodeType": "YulIdentifier", + "src": "9985:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10068:118:18", + "nodeType": "YulBlock", + "src": "10068:118:18", + "statements": [ + { + "nativeSrc": "10083:16:18", + "nodeType": "YulVariableDeclaration", + "src": "10083:16:18", + "value": { + "kind": "number", + "nativeSrc": "10097:2:18", + "nodeType": "YulLiteral", + "src": "10097:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10087:6:18", + "nodeType": "YulTypedName", + "src": "10087:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "10113:63:18", + "nodeType": "YulAssignment", + "src": "10113:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10148:9:18", + "nodeType": "YulIdentifier", + "src": "10148:9:18" + }, + { + "name": "offset", + "nativeSrc": "10159:6:18", + "nodeType": "YulIdentifier", + "src": "10159:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10144:3:18", + "nodeType": "YulIdentifier", + "src": "10144:3:18" + }, + "nativeSrc": "10144:22:18", + "nodeType": "YulFunctionCall", + "src": "10144:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10168:7:18", + "nodeType": "YulIdentifier", + "src": "10168:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10123:20:18", + "nodeType": "YulIdentifier", + "src": "10123:20:18" + }, + "nativeSrc": "10123:53:18", + "nodeType": "YulFunctionCall", + "src": "10123:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10113:6:18", + "nodeType": "YulIdentifier", + "src": "10113:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10196:303:18", + "nodeType": "YulBlock", + "src": "10196:303:18", + "statements": [ + { + "nativeSrc": "10211:46:18", + "nodeType": "YulVariableDeclaration", + "src": "10211:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10242:9:18", + "nodeType": "YulIdentifier", + "src": "10242:9:18" + }, + { + "kind": "number", + "nativeSrc": "10253:2:18", + "nodeType": "YulLiteral", + "src": "10253:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10238:3:18", + "nodeType": "YulIdentifier", + "src": "10238:3:18" + }, + "nativeSrc": "10238:18:18", + "nodeType": "YulFunctionCall", + "src": "10238:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10225:12:18", + "nodeType": "YulIdentifier", + "src": "10225:12:18" + }, + "nativeSrc": "10225:32:18", + "nodeType": "YulFunctionCall", + "src": "10225:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10215:6:18", + "nodeType": "YulTypedName", + "src": "10215:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10304:83:18", + "nodeType": "YulBlock", + "src": "10304:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10306:77:18", + "nodeType": "YulIdentifier", + "src": "10306:77:18" + }, + "nativeSrc": "10306:79:18", + "nodeType": "YulFunctionCall", + "src": "10306:79:18" + }, + "nativeSrc": "10306:79:18", + "nodeType": "YulExpressionStatement", + "src": "10306:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10276:6:18", + "nodeType": "YulIdentifier", + "src": "10276:6:18" + }, + { + "kind": "number", + "nativeSrc": "10284:18:18", + "nodeType": "YulLiteral", + "src": "10284:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10273:2:18", + "nodeType": "YulIdentifier", + "src": "10273:2:18" + }, + "nativeSrc": "10273:30:18", + "nodeType": "YulFunctionCall", + "src": "10273:30:18" + }, + "nativeSrc": "10270:117:18", + "nodeType": "YulIf", + "src": "10270:117:18" + }, + { + "nativeSrc": "10401:88:18", + "nodeType": "YulAssignment", + "src": "10401:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10461:9:18", + "nodeType": "YulIdentifier", + "src": "10461:9:18" + }, + { + "name": "offset", + "nativeSrc": "10472:6:18", + "nodeType": "YulIdentifier", + "src": "10472:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10457:3:18", + "nodeType": "YulIdentifier", + "src": "10457:3:18" + }, + "nativeSrc": "10457:22:18", + "nodeType": "YulFunctionCall", + "src": "10457:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10481:7:18", + "nodeType": "YulIdentifier", + "src": "10481:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10411:45:18", + "nodeType": "YulIdentifier", + "src": "10411:45:18" + }, + "nativeSrc": "10411:78:18", + "nodeType": "YulFunctionCall", + "src": "10411:78:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "10401:6:18", + "nodeType": "YulIdentifier", + "src": "10401:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10509:303:18", + "nodeType": "YulBlock", + "src": "10509:303:18", + "statements": [ + { + "nativeSrc": "10524:46:18", + "nodeType": "YulVariableDeclaration", + "src": "10524:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10555:9:18", + "nodeType": "YulIdentifier", + "src": "10555:9:18" + }, + { + "kind": "number", + "nativeSrc": "10566:2:18", + "nodeType": "YulLiteral", + "src": "10566:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10551:3:18", + "nodeType": "YulIdentifier", + "src": "10551:3:18" + }, + "nativeSrc": "10551:18:18", + "nodeType": "YulFunctionCall", + "src": "10551:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10538:12:18", + "nodeType": "YulIdentifier", + "src": "10538:12:18" + }, + "nativeSrc": "10538:32:18", + "nodeType": "YulFunctionCall", + "src": "10538:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10528:6:18", + "nodeType": "YulTypedName", + "src": "10528:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10617:83:18", + "nodeType": "YulBlock", + "src": "10617:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10619:77:18", + "nodeType": "YulIdentifier", + "src": "10619:77:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulFunctionCall", + "src": "10619:79:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulExpressionStatement", + "src": "10619:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10589:6:18", + "nodeType": "YulIdentifier", + "src": "10589:6:18" + }, + { + "kind": "number", + "nativeSrc": "10597:18:18", + "nodeType": "YulLiteral", + "src": "10597:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10586:2:18", + "nodeType": "YulIdentifier", + "src": "10586:2:18" + }, + "nativeSrc": "10586:30:18", + "nodeType": "YulFunctionCall", + "src": "10586:30:18" + }, + "nativeSrc": "10583:117:18", + "nodeType": "YulIf", + "src": "10583:117:18" + }, + { + "nativeSrc": "10714:88:18", + "nodeType": "YulAssignment", + "src": "10714:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10774:9:18", + "nodeType": "YulIdentifier", + "src": "10774:9:18" + }, + { + "name": "offset", + "nativeSrc": "10785:6:18", + "nodeType": "YulIdentifier", + "src": "10785:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10770:3:18", + "nodeType": "YulIdentifier", + "src": "10770:3:18" + }, + "nativeSrc": "10770:22:18", + "nodeType": "YulFunctionCall", + "src": "10770:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10794:7:18", + "nodeType": "YulIdentifier", + "src": "10794:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10724:45:18", + "nodeType": "YulIdentifier", + "src": "10724:45:18" + }, + "nativeSrc": "10724:78:18", + "nodeType": "YulFunctionCall", + "src": "10724:78:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "10714:6:18", + "nodeType": "YulIdentifier", + "src": "10714:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10822:288:18", + "nodeType": "YulBlock", + "src": "10822:288:18", + "statements": [ + { + "nativeSrc": "10837:47:18", + "nodeType": "YulVariableDeclaration", + "src": "10837:47:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10868:9:18", + "nodeType": "YulIdentifier", + "src": "10868:9:18" + }, + { + "kind": "number", + "nativeSrc": "10879:3:18", + "nodeType": "YulLiteral", + "src": "10879:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10864:3:18", + "nodeType": "YulIdentifier", + "src": "10864:3:18" + }, + "nativeSrc": "10864:19:18", + "nodeType": "YulFunctionCall", + "src": "10864:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10851:12:18", + "nodeType": "YulIdentifier", + "src": "10851:12:18" + }, + "nativeSrc": "10851:33:18", + "nodeType": "YulFunctionCall", + "src": "10851:33:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10841:6:18", + "nodeType": "YulTypedName", + "src": "10841:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10931:83:18", + "nodeType": "YulBlock", + "src": "10931:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10933:77:18", + "nodeType": "YulIdentifier", + "src": "10933:77:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulFunctionCall", + "src": "10933:79:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulExpressionStatement", + "src": "10933:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10903:6:18", + "nodeType": "YulIdentifier", + "src": "10903:6:18" + }, + { + "kind": "number", + "nativeSrc": "10911:18:18", + "nodeType": "YulLiteral", + "src": "10911:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10900:2:18", + "nodeType": "YulIdentifier", + "src": "10900:2:18" + }, + "nativeSrc": "10900:30:18", + "nodeType": "YulFunctionCall", + "src": "10900:30:18" + }, + "nativeSrc": "10897:117:18", + "nodeType": "YulIf", + "src": "10897:117:18" + }, + { + "nativeSrc": "11028:72:18", + "nodeType": "YulAssignment", + "src": "11028:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11072:9:18", + "nodeType": "YulIdentifier", + "src": "11072:9:18" + }, + { + "name": "offset", + "nativeSrc": "11083:6:18", + "nodeType": "YulIdentifier", + "src": "11083:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11068:3:18", + "nodeType": "YulIdentifier", + "src": "11068:3:18" + }, + "nativeSrc": "11068:22:18", + "nodeType": "YulFunctionCall", + "src": "11068:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "11092:7:18", + "nodeType": "YulIdentifier", + "src": "11092:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11038:29:18", + "nodeType": "YulIdentifier", + "src": "11038:29:18" + }, + "nativeSrc": "11038:62:18", + "nodeType": "YulFunctionCall", + "src": "11038:62:18" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "11028:6:18", + "nodeType": "YulIdentifier", + "src": "11028:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "9608:1509:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9739:9:18", + "nodeType": "YulTypedName", + "src": "9739:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9750:7:18", + "nodeType": "YulTypedName", + "src": "9750:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9762:6:18", + "nodeType": "YulTypedName", + "src": "9762:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9770:6:18", + "nodeType": "YulTypedName", + "src": "9770:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9778:6:18", + "nodeType": "YulTypedName", + "src": "9778:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "9786:6:18", + "nodeType": "YulTypedName", + "src": "9786:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "9794:6:18", + "nodeType": "YulTypedName", + "src": "9794:6:18", + "type": "" + } + ], + "src": "9608:1509:18" + }, + { + "body": { + "nativeSrc": "11206:391:18", + "nodeType": "YulBlock", + "src": "11206:391:18", + "statements": [ + { + "body": { + "nativeSrc": "11252:83:18", + "nodeType": "YulBlock", + "src": "11252:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11254:77:18", + "nodeType": "YulIdentifier", + "src": "11254:77:18" + }, + "nativeSrc": "11254:79:18", + "nodeType": "YulFunctionCall", + "src": "11254:79:18" + }, + "nativeSrc": "11254:79:18", + "nodeType": "YulExpressionStatement", + "src": "11254:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11227:7:18", + "nodeType": "YulIdentifier", + "src": "11227:7:18" + }, + { + "name": "headStart", + "nativeSrc": "11236:9:18", + "nodeType": "YulIdentifier", + "src": "11236:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11223:3:18", + "nodeType": "YulIdentifier", + "src": "11223:3:18" + }, + "nativeSrc": "11223:23:18", + "nodeType": "YulFunctionCall", + "src": "11223:23:18" + }, + { + "kind": "number", + "nativeSrc": "11248:2:18", + "nodeType": "YulLiteral", + "src": "11248:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11219:3:18", + "nodeType": "YulIdentifier", + "src": "11219:3:18" + }, + "nativeSrc": "11219:32:18", + "nodeType": "YulFunctionCall", + "src": "11219:32:18" + }, + "nativeSrc": "11216:119:18", + "nodeType": "YulIf", + "src": "11216:119:18" + }, + { + "nativeSrc": "11345:117:18", + "nodeType": "YulBlock", + "src": "11345:117:18", + "statements": [ + { + "nativeSrc": "11360:15:18", + "nodeType": "YulVariableDeclaration", + "src": "11360:15:18", + "value": { + "kind": "number", + "nativeSrc": "11374:1:18", + "nodeType": "YulLiteral", + "src": "11374:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11364:6:18", + "nodeType": "YulTypedName", + "src": "11364:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "11389:63:18", + "nodeType": "YulAssignment", + "src": "11389:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11424:9:18", + "nodeType": "YulIdentifier", + "src": "11424:9:18" + }, + { + "name": "offset", + "nativeSrc": "11435:6:18", + "nodeType": "YulIdentifier", + "src": "11435:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11420:3:18", + "nodeType": "YulIdentifier", + "src": "11420:3:18" + }, + "nativeSrc": "11420:22:18", + "nodeType": "YulFunctionCall", + "src": "11420:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "11444:7:18", + "nodeType": "YulIdentifier", + "src": "11444:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "11399:20:18", + "nodeType": "YulIdentifier", + "src": "11399:20:18" + }, + "nativeSrc": "11399:53:18", + "nodeType": "YulFunctionCall", + "src": "11399:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11389:6:18", + "nodeType": "YulIdentifier", + "src": "11389:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "11472:118:18", + "nodeType": "YulBlock", + "src": "11472:118:18", + "statements": [ + { + "nativeSrc": "11487:16:18", + "nodeType": "YulVariableDeclaration", + "src": "11487:16:18", + "value": { + "kind": "number", + "nativeSrc": "11501:2:18", + "nodeType": "YulLiteral", + "src": "11501:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11491:6:18", + "nodeType": "YulTypedName", + "src": "11491:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "11517:63:18", + "nodeType": "YulAssignment", + "src": "11517:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11552:9:18", + "nodeType": "YulIdentifier", + "src": "11552:9:18" + }, + { + "name": "offset", + "nativeSrc": "11563:6:18", + "nodeType": "YulIdentifier", + "src": "11563:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11548:3:18", + "nodeType": "YulIdentifier", + "src": "11548:3:18" + }, + "nativeSrc": "11548:22:18", + "nodeType": "YulFunctionCall", + "src": "11548:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "11572:7:18", + "nodeType": "YulIdentifier", + "src": "11572:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11527:20:18", + "nodeType": "YulIdentifier", + "src": "11527:20:18" + }, + "nativeSrc": "11527:53:18", + "nodeType": "YulFunctionCall", + "src": "11527:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11517:6:18", + "nodeType": "YulIdentifier", + "src": "11517:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "11123:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11168:9:18", + "nodeType": "YulTypedName", + "src": "11168:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11179:7:18", + "nodeType": "YulTypedName", + "src": "11179:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11191:6:18", + "nodeType": "YulTypedName", + "src": "11191:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11199:6:18", + "nodeType": "YulTypedName", + "src": "11199:6:18", + "type": "" + } + ], + "src": "11123:474:18" + }, + { + "body": { + "nativeSrc": "11685:229:18", + "nodeType": "YulBlock", + "src": "11685:229:18", + "statements": [ + { + "body": { + "nativeSrc": "11790:22:18", + "nodeType": "YulBlock", + "src": "11790:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "11792:16:18", + "nodeType": "YulIdentifier", + "src": "11792:16:18" + }, + "nativeSrc": "11792:18:18", + "nodeType": "YulFunctionCall", + "src": "11792:18:18" + }, + "nativeSrc": "11792:18:18", + "nodeType": "YulExpressionStatement", + "src": "11792:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "11762:6:18", + "nodeType": "YulIdentifier", + "src": "11762:6:18" + }, + { + "kind": "number", + "nativeSrc": "11770:18:18", + "nodeType": "YulLiteral", + "src": "11770:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11759:2:18", + "nodeType": "YulIdentifier", + "src": "11759:2:18" + }, + "nativeSrc": "11759:30:18", + "nodeType": "YulFunctionCall", + "src": "11759:30:18" + }, + "nativeSrc": "11756:56:18", + "nodeType": "YulIf", + "src": "11756:56:18" + }, + { + "nativeSrc": "11822:25:18", + "nodeType": "YulAssignment", + "src": "11822:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "11834:6:18", + "nodeType": "YulIdentifier", + "src": "11834:6:18" + }, + { + "kind": "number", + "nativeSrc": "11842:4:18", + "nodeType": "YulLiteral", + "src": "11842:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "11830:3:18", + "nodeType": "YulIdentifier", + "src": "11830:3:18" + }, + "nativeSrc": "11830:17:18", + "nodeType": "YulFunctionCall", + "src": "11830:17:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "11822:4:18", + "nodeType": "YulIdentifier", + "src": "11822:4:18" + } + ] + }, + { + "nativeSrc": "11884:23:18", + "nodeType": "YulAssignment", + "src": "11884:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "11896:4:18", + "nodeType": "YulIdentifier", + "src": "11896:4:18" + }, + { + "kind": "number", + "nativeSrc": "11902:4:18", + "nodeType": "YulLiteral", + "src": "11902:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11892:3:18", + "nodeType": "YulIdentifier", + "src": "11892:3:18" + }, + "nativeSrc": "11892:15:18", + "nodeType": "YulFunctionCall", + "src": "11892:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "11884:4:18", + "nodeType": "YulIdentifier", + "src": "11884:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11603:311:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "11669:6:18", + "nodeType": "YulTypedName", + "src": "11669:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "11680:4:18", + "nodeType": "YulTypedName", + "src": "11680:4:18", + "type": "" + } + ], + "src": "11603:311:18" + }, + { + "body": { + "nativeSrc": "12039:608:18", + "nodeType": "YulBlock", + "src": "12039:608:18", + "statements": [ + { + "nativeSrc": "12049:90:18", + "nodeType": "YulAssignment", + "src": "12049:90:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12131:6:18", + "nodeType": "YulIdentifier", + "src": "12131:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12074:56:18", + "nodeType": "YulIdentifier", + "src": "12074:56:18" + }, + "nativeSrc": "12074:64:18", + "nodeType": "YulFunctionCall", + "src": "12074:64:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "12058:15:18", + "nodeType": "YulIdentifier", + "src": "12058:15:18" + }, + "nativeSrc": "12058:81:18", + "nodeType": "YulFunctionCall", + "src": "12058:81:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12049:5:18", + "nodeType": "YulIdentifier", + "src": "12049:5:18" + } + ] + }, + { + "nativeSrc": "12148:16:18", + "nodeType": "YulVariableDeclaration", + "src": "12148:16:18", + "value": { + "name": "array", + "nativeSrc": "12159:5:18", + "nodeType": "YulIdentifier", + "src": "12159:5:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "12152:3:18", + "nodeType": "YulTypedName", + "src": "12152:3:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12181:5:18", + "nodeType": "YulIdentifier", + "src": "12181:5:18" + }, + { + "name": "length", + "nativeSrc": "12188:6:18", + "nodeType": "YulIdentifier", + "src": "12188:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12174:6:18", + "nodeType": "YulIdentifier", + "src": "12174:6:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulFunctionCall", + "src": "12174:21:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulExpressionStatement", + "src": "12174:21:18" + }, + { + "nativeSrc": "12204:23:18", + "nodeType": "YulAssignment", + "src": "12204:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12215:5:18", + "nodeType": "YulIdentifier", + "src": "12215:5:18" + }, + { + "kind": "number", + "nativeSrc": "12222:4:18", + "nodeType": "YulLiteral", + "src": "12222:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12211:3:18", + "nodeType": "YulIdentifier", + "src": "12211:3:18" + }, + "nativeSrc": "12211:16:18", + "nodeType": "YulFunctionCall", + "src": "12211:16:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12204:3:18", + "nodeType": "YulIdentifier", + "src": "12204:3:18" + } + ] + }, + { + "nativeSrc": "12237:44:18", + "nodeType": "YulVariableDeclaration", + "src": "12237:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12255:6:18", + "nodeType": "YulIdentifier", + "src": "12255:6:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12267:6:18", + "nodeType": "YulIdentifier", + "src": "12267:6:18" + }, + { + "kind": "number", + "nativeSrc": "12275:4:18", + "nodeType": "YulLiteral", + "src": "12275:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "12263:3:18", + "nodeType": "YulIdentifier", + "src": "12263:3:18" + }, + "nativeSrc": "12263:17:18", + "nodeType": "YulFunctionCall", + "src": "12263:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12251:3:18", + "nodeType": "YulIdentifier", + "src": "12251:3:18" + }, + "nativeSrc": "12251:30:18", + "nodeType": "YulFunctionCall", + "src": "12251:30:18" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "12241:6:18", + "nodeType": "YulTypedName", + "src": "12241:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12309:103:18", + "nodeType": "YulBlock", + "src": "12309:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "12323:77:18", + "nodeType": "YulIdentifier", + "src": "12323:77:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulFunctionCall", + "src": "12323:79:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulExpressionStatement", + "src": "12323:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "12296:6:18", + "nodeType": "YulIdentifier", + "src": "12296:6:18" + }, + { + "name": "end", + "nativeSrc": "12304:3:18", + "nodeType": "YulIdentifier", + "src": "12304:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12293:2:18", + "nodeType": "YulIdentifier", + "src": "12293:2:18" + }, + "nativeSrc": "12293:15:18", + "nodeType": "YulFunctionCall", + "src": "12293:15:18" + }, + "nativeSrc": "12290:122:18", + "nodeType": "YulIf", + "src": "12290:122:18" + }, + { + "body": { + "nativeSrc": "12497:144:18", + "nodeType": "YulBlock", + "src": "12497:144:18", + "statements": [ + { + "nativeSrc": "12512:21:18", + "nodeType": "YulVariableDeclaration", + "src": "12512:21:18", + "value": { + "name": "src", + "nativeSrc": "12530:3:18", + "nodeType": "YulIdentifier", + "src": "12530:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "12516:10:18", + "nodeType": "YulTypedName", + "src": "12516:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12554:3:18", + "nodeType": "YulIdentifier", + "src": "12554:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "12580:10:18", + "nodeType": "YulIdentifier", + "src": "12580:10:18" + }, + { + "name": "end", + "nativeSrc": "12592:3:18", + "nodeType": "YulIdentifier", + "src": "12592:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12559:20:18", + "nodeType": "YulIdentifier", + "src": "12559:20:18" + }, + "nativeSrc": "12559:37:18", + "nodeType": "YulFunctionCall", + "src": "12559:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12547:6:18", + "nodeType": "YulIdentifier", + "src": "12547:6:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulFunctionCall", + "src": "12547:50:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulExpressionStatement", + "src": "12547:50:18" + }, + { + "nativeSrc": "12610:21:18", + "nodeType": "YulAssignment", + "src": "12610:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12621:3:18", + "nodeType": "YulIdentifier", + "src": "12621:3:18" + }, + { + "kind": "number", + "nativeSrc": "12626:4:18", + "nodeType": "YulLiteral", + "src": "12626:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12617:3:18", + "nodeType": "YulIdentifier", + "src": "12617:3:18" + }, + "nativeSrc": "12617:14:18", + "nodeType": "YulFunctionCall", + "src": "12617:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12610:3:18", + "nodeType": "YulIdentifier", + "src": "12610:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12450:3:18", + "nodeType": "YulIdentifier", + "src": "12450:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "12455:6:18", + "nodeType": "YulIdentifier", + "src": "12455:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12447:2:18", + "nodeType": "YulIdentifier", + "src": "12447:2:18" + }, + "nativeSrc": "12447:15:18", + "nodeType": "YulFunctionCall", + "src": "12447:15:18" + }, + "nativeSrc": "12421:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12463:25:18", + "nodeType": "YulBlock", + "src": "12463:25:18", + "statements": [ + { + "nativeSrc": "12465:21:18", + "nodeType": "YulAssignment", + "src": "12465:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12476:3:18", + "nodeType": "YulIdentifier", + "src": "12476:3:18" + }, + { + "kind": "number", + "nativeSrc": "12481:4:18", + "nodeType": "YulLiteral", + "src": "12481:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12472:3:18", + "nodeType": "YulIdentifier", + "src": "12472:3:18" + }, + "nativeSrc": "12472:14:18", + "nodeType": "YulFunctionCall", + "src": "12472:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "12465:3:18", + "nodeType": "YulIdentifier", + "src": "12465:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12425:21:18", + "nodeType": "YulBlock", + "src": "12425:21:18", + "statements": [ + { + "nativeSrc": "12427:17:18", + "nodeType": "YulVariableDeclaration", + "src": "12427:17:18", + "value": { + "name": "offset", + "nativeSrc": "12438:6:18", + "nodeType": "YulIdentifier", + "src": "12438:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "12431:3:18", + "nodeType": "YulTypedName", + "src": "12431:3:18", + "type": "" + } + ] + } + ] + }, + "src": "12421:220:18" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11937:710:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12009:6:18", + "nodeType": "YulTypedName", + "src": "12009:6:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "12017:6:18", + "nodeType": "YulTypedName", + "src": "12017:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12025:3:18", + "nodeType": "YulTypedName", + "src": "12025:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "12033:5:18", + "nodeType": "YulTypedName", + "src": "12033:5:18", + "type": "" + } + ], + "src": "11937:710:18" + }, + { + "body": { + "nativeSrc": "12747:293:18", + "nodeType": "YulBlock", + "src": "12747:293:18", + "statements": [ + { + "body": { + "nativeSrc": "12796:83:18", + "nodeType": "YulBlock", + "src": "12796:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "12798:77:18", + "nodeType": "YulIdentifier", + "src": "12798:77:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulFunctionCall", + "src": "12798:79:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulExpressionStatement", + "src": "12798:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12775:6:18", + "nodeType": "YulIdentifier", + "src": "12775:6:18" + }, + { + "kind": "number", + "nativeSrc": "12783:4:18", + "nodeType": "YulLiteral", + "src": "12783:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12771:3:18", + "nodeType": "YulIdentifier", + "src": "12771:3:18" + }, + "nativeSrc": "12771:17:18", + "nodeType": "YulFunctionCall", + "src": "12771:17:18" + }, + { + "name": "end", + "nativeSrc": "12790:3:18", + "nodeType": "YulIdentifier", + "src": "12790:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12767:3:18", + "nodeType": "YulIdentifier", + "src": "12767:3:18" + }, + "nativeSrc": "12767:27:18", + "nodeType": "YulFunctionCall", + "src": "12767:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12760:6:18", + "nodeType": "YulIdentifier", + "src": "12760:6:18" + }, + "nativeSrc": "12760:35:18", + "nodeType": "YulFunctionCall", + "src": "12760:35:18" + }, + "nativeSrc": "12757:122:18", + "nodeType": "YulIf", + "src": "12757:122:18" + }, + { + "nativeSrc": "12888:34:18", + "nodeType": "YulVariableDeclaration", + "src": "12888:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12915:6:18", + "nodeType": "YulIdentifier", + "src": "12915:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12902:12:18", + "nodeType": "YulIdentifier", + "src": "12902:12:18" + }, + "nativeSrc": "12902:20:18", + "nodeType": "YulFunctionCall", + "src": "12902:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "12892:6:18", + "nodeType": "YulTypedName", + "src": "12892:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "12931:103:18", + "nodeType": "YulAssignment", + "src": "12931:103:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13007:6:18", + "nodeType": "YulIdentifier", + "src": "13007:6:18" + }, + { + "kind": "number", + "nativeSrc": "13015:4:18", + "nodeType": "YulLiteral", + "src": "13015:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13003:3:18", + "nodeType": "YulIdentifier", + "src": "13003:3:18" + }, + "nativeSrc": "13003:17:18", + "nodeType": "YulFunctionCall", + "src": "13003:17:18" + }, + { + "name": "length", + "nativeSrc": "13022:6:18", + "nodeType": "YulIdentifier", + "src": "13022:6:18" + }, + { + "name": "end", + "nativeSrc": "13030:3:18", + "nodeType": "YulIdentifier", + "src": "13030:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12940:62:18", + "nodeType": "YulIdentifier", + "src": "12940:62:18" + }, + "nativeSrc": "12940:94:18", + "nodeType": "YulFunctionCall", + "src": "12940:94:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12931:5:18", + "nodeType": "YulIdentifier", + "src": "12931:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12670:370:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12725:6:18", + "nodeType": "YulTypedName", + "src": "12725:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12733:3:18", + "nodeType": "YulTypedName", + "src": "12733:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "12741:5:18", + "nodeType": "YulTypedName", + "src": "12741:5:18", + "type": "" + } + ], + "src": "12670:370:18" + }, + { + "body": { + "nativeSrc": "13179:761:18", + "nodeType": "YulBlock", + "src": "13179:761:18", + "statements": [ + { + "body": { + "nativeSrc": "13225:83:18", + "nodeType": "YulBlock", + "src": "13225:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "13227:77:18", + "nodeType": "YulIdentifier", + "src": "13227:77:18" + }, + "nativeSrc": "13227:79:18", + "nodeType": "YulFunctionCall", + "src": "13227:79:18" + }, + "nativeSrc": "13227:79:18", + "nodeType": "YulExpressionStatement", + "src": "13227:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13200:7:18", + "nodeType": "YulIdentifier", + "src": "13200:7:18" + }, + { + "name": "headStart", + "nativeSrc": "13209:9:18", + "nodeType": "YulIdentifier", + "src": "13209:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13196:3:18", + "nodeType": "YulIdentifier", + "src": "13196:3:18" + }, + "nativeSrc": "13196:23:18", + "nodeType": "YulFunctionCall", + "src": "13196:23:18" + }, + { + "kind": "number", + "nativeSrc": "13221:2:18", + "nodeType": "YulLiteral", + "src": "13221:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13192:3:18", + "nodeType": "YulIdentifier", + "src": "13192:3:18" + }, + "nativeSrc": "13192:32:18", + "nodeType": "YulFunctionCall", + "src": "13192:32:18" + }, + "nativeSrc": "13189:119:18", + "nodeType": "YulIf", + "src": "13189:119:18" + }, + { + "nativeSrc": "13318:302:18", + "nodeType": "YulBlock", + "src": "13318:302:18", + "statements": [ + { + "nativeSrc": "13333:45:18", + "nodeType": "YulVariableDeclaration", + "src": "13333:45:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13364:9:18", + "nodeType": "YulIdentifier", + "src": "13364:9:18" + }, + { + "kind": "number", + "nativeSrc": "13375:1:18", + "nodeType": "YulLiteral", + "src": "13375:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13360:3:18", + "nodeType": "YulIdentifier", + "src": "13360:3:18" + }, + "nativeSrc": "13360:17:18", + "nodeType": "YulFunctionCall", + "src": "13360:17:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13347:12:18", + "nodeType": "YulIdentifier", + "src": "13347:12:18" + }, + "nativeSrc": "13347:31:18", + "nodeType": "YulFunctionCall", + "src": "13347:31:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13337:6:18", + "nodeType": "YulTypedName", + "src": "13337:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13425:83:18", + "nodeType": "YulBlock", + "src": "13425:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "13427:77:18", + "nodeType": "YulIdentifier", + "src": "13427:77:18" + }, + "nativeSrc": "13427:79:18", + "nodeType": "YulFunctionCall", + "src": "13427:79:18" + }, + "nativeSrc": "13427:79:18", + "nodeType": "YulExpressionStatement", + "src": "13427:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13397:6:18", + "nodeType": "YulIdentifier", + "src": "13397:6:18" + }, + { + "kind": "number", + "nativeSrc": "13405:18:18", + "nodeType": "YulLiteral", + "src": "13405:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13394:2:18", + "nodeType": "YulIdentifier", + "src": "13394:2:18" + }, + "nativeSrc": "13394:30:18", + "nodeType": "YulFunctionCall", + "src": "13394:30:18" + }, + "nativeSrc": "13391:117:18", + "nodeType": "YulIf", + "src": "13391:117:18" + }, + { + "nativeSrc": "13522:88:18", + "nodeType": "YulAssignment", + "src": "13522:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13582:9:18", + "nodeType": "YulIdentifier", + "src": "13582:9:18" + }, + { + "name": "offset", + "nativeSrc": "13593:6:18", + "nodeType": "YulIdentifier", + "src": "13593:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13578:3:18", + "nodeType": "YulIdentifier", + "src": "13578:3:18" + }, + "nativeSrc": "13578:22:18", + "nodeType": "YulFunctionCall", + "src": "13578:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "13602:7:18", + "nodeType": "YulIdentifier", + "src": "13602:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "13532:45:18", + "nodeType": "YulIdentifier", + "src": "13532:45:18" + }, + "nativeSrc": "13532:78:18", + "nodeType": "YulFunctionCall", + "src": "13532:78:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13522:6:18", + "nodeType": "YulIdentifier", + "src": "13522:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "13630:303:18", + "nodeType": "YulBlock", + "src": "13630:303:18", + "statements": [ + { + "nativeSrc": "13645:46:18", + "nodeType": "YulVariableDeclaration", + "src": "13645:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13676:9:18", + "nodeType": "YulIdentifier", + "src": "13676:9:18" + }, + { + "kind": "number", + "nativeSrc": "13687:2:18", + "nodeType": "YulLiteral", + "src": "13687:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13672:3:18", + "nodeType": "YulIdentifier", + "src": "13672:3:18" + }, + "nativeSrc": "13672:18:18", + "nodeType": "YulFunctionCall", + "src": "13672:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13659:12:18", + "nodeType": "YulIdentifier", + "src": "13659:12:18" + }, + "nativeSrc": "13659:32:18", + "nodeType": "YulFunctionCall", + "src": "13659:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13649:6:18", + "nodeType": "YulTypedName", + "src": "13649:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13738:83:18", + "nodeType": "YulBlock", + "src": "13738:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "13740:77:18", + "nodeType": "YulIdentifier", + "src": "13740:77:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulFunctionCall", + "src": "13740:79:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulExpressionStatement", + "src": "13740:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13710:6:18", + "nodeType": "YulIdentifier", + "src": "13710:6:18" + }, + { + "kind": "number", + "nativeSrc": "13718:18:18", + "nodeType": "YulLiteral", + "src": "13718:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13707:2:18", + "nodeType": "YulIdentifier", + "src": "13707:2:18" + }, + "nativeSrc": "13707:30:18", + "nodeType": "YulFunctionCall", + "src": "13707:30:18" + }, + "nativeSrc": "13704:117:18", + "nodeType": "YulIf", + "src": "13704:117:18" + }, + { + "nativeSrc": "13835:88:18", + "nodeType": "YulAssignment", + "src": "13835:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13895:9:18", + "nodeType": "YulIdentifier", + "src": "13895:9:18" + }, + { + "name": "offset", + "nativeSrc": "13906:6:18", + "nodeType": "YulIdentifier", + "src": "13906:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13891:3:18", + "nodeType": "YulIdentifier", + "src": "13891:3:18" + }, + "nativeSrc": "13891:22:18", + "nodeType": "YulFunctionCall", + "src": "13891:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "13915:7:18", + "nodeType": "YulIdentifier", + "src": "13915:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13845:45:18", + "nodeType": "YulIdentifier", + "src": "13845:45:18" + }, + "nativeSrc": "13845:78:18", + "nodeType": "YulFunctionCall", + "src": "13845:78:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "13835:6:18", + "nodeType": "YulIdentifier", + "src": "13835:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13046:894:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13141:9:18", + "nodeType": "YulTypedName", + "src": "13141:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13152:7:18", + "nodeType": "YulTypedName", + "src": "13152:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13164:6:18", + "nodeType": "YulTypedName", + "src": "13164:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13172:6:18", + "nodeType": "YulTypedName", + "src": "13172:6:18", + "type": "" + } + ], + "src": "13046:894:18" + }, + { + "body": { + "nativeSrc": "14020:40:18", + "nodeType": "YulBlock", + "src": "14020:40:18", + "statements": [ + { + "nativeSrc": "14031:22:18", + "nodeType": "YulAssignment", + "src": "14031:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14047:5:18", + "nodeType": "YulIdentifier", + "src": "14047:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14041:5:18", + "nodeType": "YulIdentifier", + "src": "14041:5:18" + }, + "nativeSrc": "14041:12:18", + "nodeType": "YulFunctionCall", + "src": "14041:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "14031:6:18", + "nodeType": "YulIdentifier", + "src": "14031:6:18" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13946:114:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14003:5:18", + "nodeType": "YulTypedName", + "src": "14003:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "14013:6:18", + "nodeType": "YulTypedName", + "src": "14013:6:18", + "type": "" + } + ], + "src": "13946:114:18" + }, + { + "body": { + "nativeSrc": "14177:73:18", + "nodeType": "YulBlock", + "src": "14177:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14194:3:18", + "nodeType": "YulIdentifier", + "src": "14194:3:18" + }, + { + "name": "length", + "nativeSrc": "14199:6:18", + "nodeType": "YulIdentifier", + "src": "14199:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14187:6:18", + "nodeType": "YulIdentifier", + "src": "14187:6:18" + }, + "nativeSrc": "14187:19:18", + "nodeType": "YulFunctionCall", + "src": "14187:19:18" + }, + "nativeSrc": "14187:19:18", + "nodeType": "YulExpressionStatement", + "src": "14187:19:18" + }, + { + "nativeSrc": "14215:29:18", + "nodeType": "YulAssignment", + "src": "14215:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14234:3:18", + "nodeType": "YulIdentifier", + "src": "14234:3:18" + }, + { + "kind": "number", + "nativeSrc": "14239:4:18", + "nodeType": "YulLiteral", + "src": "14239:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14230:3:18", + "nodeType": "YulIdentifier", + "src": "14230:3:18" + }, + "nativeSrc": "14230:14:18", + "nodeType": "YulFunctionCall", + "src": "14230:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "14215:11:18", + "nodeType": "YulIdentifier", + "src": "14215:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14066:184:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14149:3:18", + "nodeType": "YulTypedName", + "src": "14149:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "14154:6:18", + "nodeType": "YulTypedName", + "src": "14154:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "14165:11:18", + "nodeType": "YulTypedName", + "src": "14165:11:18", + "type": "" + } + ], + "src": "14066:184:18" + }, + { + "body": { + "nativeSrc": "14328:60:18", + "nodeType": "YulBlock", + "src": "14328:60:18", + "statements": [ + { + "nativeSrc": "14338:11:18", + "nodeType": "YulAssignment", + "src": "14338:11:18", + "value": { + "name": "ptr", + "nativeSrc": "14346:3:18", + "nodeType": "YulIdentifier", + "src": "14346:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "14338:4:18", + "nodeType": "YulIdentifier", + "src": "14338:4:18" + } + ] + }, + { + "nativeSrc": "14359:22:18", + "nodeType": "YulAssignment", + "src": "14359:22:18", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "14371:3:18", + "nodeType": "YulIdentifier", + "src": "14371:3:18" + }, + { + "kind": "number", + "nativeSrc": "14376:4:18", + "nodeType": "YulLiteral", + "src": "14376:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14367:3:18", + "nodeType": "YulIdentifier", + "src": "14367:3:18" + }, + "nativeSrc": "14367:14:18", + "nodeType": "YulFunctionCall", + "src": "14367:14:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "14359:4:18", + "nodeType": "YulIdentifier", + "src": "14359:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14256:132:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "14315:3:18", + "nodeType": "YulTypedName", + "src": "14315:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "14323:4:18", + "nodeType": "YulTypedName", + "src": "14323:4:18", + "type": "" + } + ], + "src": "14256:132:18" + }, + { + "body": { + "nativeSrc": "14449:53:18", + "nodeType": "YulBlock", + "src": "14449:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14466:3:18", + "nodeType": "YulIdentifier", + "src": "14466:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14489:5:18", + "nodeType": "YulIdentifier", + "src": "14489:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14471:17:18", + "nodeType": "YulIdentifier", + "src": "14471:17:18" + }, + "nativeSrc": "14471:24:18", + "nodeType": "YulFunctionCall", + "src": "14471:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14459:6:18", + "nodeType": "YulIdentifier", + "src": "14459:6:18" + }, + "nativeSrc": "14459:37:18", + "nodeType": "YulFunctionCall", + "src": "14459:37:18" + }, + "nativeSrc": "14459:37:18", + "nodeType": "YulExpressionStatement", + "src": "14459:37:18" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14394:108:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14437:5:18", + "nodeType": "YulTypedName", + "src": "14437:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14444:3:18", + "nodeType": "YulTypedName", + "src": "14444:3:18", + "type": "" + } + ], + "src": "14394:108:18" + }, + { + "body": { + "nativeSrc": "14588:99:18", + "nodeType": "YulBlock", + "src": "14588:99:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14632:6:18", + "nodeType": "YulIdentifier", + "src": "14632:6:18" + }, + { + "name": "pos", + "nativeSrc": "14640:3:18", + "nodeType": "YulIdentifier", + "src": "14640:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14598:33:18", + "nodeType": "YulIdentifier", + "src": "14598:33:18" + }, + "nativeSrc": "14598:46:18", + "nodeType": "YulFunctionCall", + "src": "14598:46:18" + }, + "nativeSrc": "14598:46:18", + "nodeType": "YulExpressionStatement", + "src": "14598:46:18" + }, + { + "nativeSrc": "14653:28:18", + "nodeType": "YulAssignment", + "src": "14653:28:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14671:3:18", + "nodeType": "YulIdentifier", + "src": "14671:3:18" + }, + { + "kind": "number", + "nativeSrc": "14676:4:18", + "nodeType": "YulLiteral", + "src": "14676:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14667:3:18", + "nodeType": "YulIdentifier", + "src": "14667:3:18" + }, + "nativeSrc": "14667:14:18", + "nodeType": "YulFunctionCall", + "src": "14667:14:18" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "14653:10:18", + "nodeType": "YulIdentifier", + "src": "14653:10:18" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "14508:179:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "14561:6:18", + "nodeType": "YulTypedName", + "src": "14561:6:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14569:3:18", + "nodeType": "YulTypedName", + "src": "14569:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "14577:10:18", + "nodeType": "YulTypedName", + "src": "14577:10:18", + "type": "" + } + ], + "src": "14508:179:18" + }, + { + "body": { + "nativeSrc": "14768:38:18", + "nodeType": "YulBlock", + "src": "14768:38:18", + "statements": [ + { + "nativeSrc": "14778:22:18", + "nodeType": "YulAssignment", + "src": "14778:22:18", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "14790:3:18", + "nodeType": "YulIdentifier", + "src": "14790:3:18" + }, + { + "kind": "number", + "nativeSrc": "14795:4:18", + "nodeType": "YulLiteral", + "src": "14795:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14786:3:18", + "nodeType": "YulIdentifier", + "src": "14786:3:18" + }, + "nativeSrc": "14786:14:18", + "nodeType": "YulFunctionCall", + "src": "14786:14:18" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "14778:4:18", + "nodeType": "YulIdentifier", + "src": "14778:4:18" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14693:113:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "14755:3:18", + "nodeType": "YulTypedName", + "src": "14755:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "14763:4:18", + "nodeType": "YulTypedName", + "src": "14763:4:18", + "type": "" + } + ], + "src": "14693:113:18" + }, + { + "body": { + "nativeSrc": "14966:608:18", + "nodeType": "YulBlock", + "src": "14966:608:18", + "statements": [ + { + "nativeSrc": "14976:68:18", + "nodeType": "YulVariableDeclaration", + "src": "14976:68:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15038:5:18", + "nodeType": "YulIdentifier", + "src": "15038:5:18" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14990:47:18", + "nodeType": "YulIdentifier", + "src": "14990:47:18" + }, + "nativeSrc": "14990:54:18", + "nodeType": "YulFunctionCall", + "src": "14990:54:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "14980:6:18", + "nodeType": "YulTypedName", + "src": "14980:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15053:93:18", + "nodeType": "YulAssignment", + "src": "15053:93:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15134:3:18", + "nodeType": "YulIdentifier", + "src": "15134:3:18" + }, + { + "name": "length", + "nativeSrc": "15139:6:18", + "nodeType": "YulIdentifier", + "src": "15139:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15060:73:18", + "nodeType": "YulIdentifier", + "src": "15060:73:18" + }, + "nativeSrc": "15060:86:18", + "nodeType": "YulFunctionCall", + "src": "15060:86:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15053:3:18", + "nodeType": "YulIdentifier", + "src": "15053:3:18" + } + ] + }, + { + "nativeSrc": "15155:71:18", + "nodeType": "YulVariableDeclaration", + "src": "15155:71:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15220:5:18", + "nodeType": "YulIdentifier", + "src": "15220:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15170:49:18", + "nodeType": "YulIdentifier", + "src": "15170:49:18" + }, + "nativeSrc": "15170:56:18", + "nodeType": "YulFunctionCall", + "src": "15170:56:18" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "15159:7:18", + "nodeType": "YulTypedName", + "src": "15159:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15235:21:18", + "nodeType": "YulVariableDeclaration", + "src": "15235:21:18", + "value": { + "name": "baseRef", + "nativeSrc": "15249:7:18", + "nodeType": "YulIdentifier", + "src": "15249:7:18" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "15239:6:18", + "nodeType": "YulTypedName", + "src": "15239:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15325:224:18", + "nodeType": "YulBlock", + "src": "15325:224:18", + "statements": [ + { + "nativeSrc": "15339:34:18", + "nodeType": "YulVariableDeclaration", + "src": "15339:34:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15366:6:18", + "nodeType": "YulIdentifier", + "src": "15366:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15360:5:18", + "nodeType": "YulIdentifier", + "src": "15360:5:18" + }, + "nativeSrc": "15360:13:18", + "nodeType": "YulFunctionCall", + "src": "15360:13:18" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "15343:13:18", + "nodeType": "YulTypedName", + "src": "15343:13:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15386:70:18", + "nodeType": "YulAssignment", + "src": "15386:70:18", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "15437:13:18", + "nodeType": "YulIdentifier", + "src": "15437:13:18" + }, + { + "name": "pos", + "nativeSrc": "15452:3:18", + "nodeType": "YulIdentifier", + "src": "15452:3:18" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "15393:43:18", + "nodeType": "YulIdentifier", + "src": "15393:43:18" + }, + "nativeSrc": "15393:63:18", + "nodeType": "YulFunctionCall", + "src": "15393:63:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15386:3:18", + "nodeType": "YulIdentifier", + "src": "15386:3:18" + } + ] + }, + { + "nativeSrc": "15469:70:18", + "nodeType": "YulAssignment", + "src": "15469:70:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15532:6:18", + "nodeType": "YulIdentifier", + "src": "15532:6:18" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15479:52:18", + "nodeType": "YulIdentifier", + "src": "15479:52:18" + }, + "nativeSrc": "15479:60:18", + "nodeType": "YulFunctionCall", + "src": "15479:60:18" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "15469:6:18", + "nodeType": "YulIdentifier", + "src": "15469:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15287:1:18", + "nodeType": "YulIdentifier", + "src": "15287:1:18" + }, + { + "name": "length", + "nativeSrc": "15290:6:18", + "nodeType": "YulIdentifier", + "src": "15290:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15284:2:18", + "nodeType": "YulIdentifier", + "src": "15284:2:18" + }, + "nativeSrc": "15284:13:18", + "nodeType": "YulFunctionCall", + "src": "15284:13:18" + }, + "nativeSrc": "15265:284:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "15298:18:18", + "nodeType": "YulBlock", + "src": "15298:18:18", + "statements": [ + { + "nativeSrc": "15300:14:18", + "nodeType": "YulAssignment", + "src": "15300:14:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15309:1:18", + "nodeType": "YulIdentifier", + "src": "15309:1:18" + }, + { + "kind": "number", + "nativeSrc": "15312:1:18", + "nodeType": "YulLiteral", + "src": "15312:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15305:3:18", + "nodeType": "YulIdentifier", + "src": "15305:3:18" + }, + "nativeSrc": "15305:9:18", + "nodeType": "YulFunctionCall", + "src": "15305:9:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "15300:1:18", + "nodeType": "YulIdentifier", + "src": "15300:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "15269:14:18", + "nodeType": "YulBlock", + "src": "15269:14:18", + "statements": [ + { + "nativeSrc": "15271:10:18", + "nodeType": "YulVariableDeclaration", + "src": "15271:10:18", + "value": { + "kind": "number", + "nativeSrc": "15280:1:18", + "nodeType": "YulLiteral", + "src": "15280:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "15275:1:18", + "nodeType": "YulTypedName", + "src": "15275:1:18", + "type": "" + } + ] + } + ] + }, + "src": "15265:284:18" + }, + { + "nativeSrc": "15558:10:18", + "nodeType": "YulAssignment", + "src": "15558:10:18", + "value": { + "name": "pos", + "nativeSrc": "15565:3:18", + "nodeType": "YulIdentifier", + "src": "15565:3:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15558:3:18", + "nodeType": "YulIdentifier", + "src": "15558:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14842:732:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14945:5:18", + "nodeType": "YulTypedName", + "src": "14945:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14952:3:18", + "nodeType": "YulTypedName", + "src": "14952:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14961:3:18", + "nodeType": "YulTypedName", + "src": "14961:3:18", + "type": "" + } + ], + "src": "14842:732:18" + }, + { + "body": { + "nativeSrc": "15728:225:18", + "nodeType": "YulBlock", + "src": "15728:225:18", + "statements": [ + { + "nativeSrc": "15738:26:18", + "nodeType": "YulAssignment", + "src": "15738:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15750:9:18", + "nodeType": "YulIdentifier", + "src": "15750:9:18" + }, + { + "kind": "number", + "nativeSrc": "15761:2:18", + "nodeType": "YulLiteral", + "src": "15761:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15746:3:18", + "nodeType": "YulIdentifier", + "src": "15746:3:18" + }, + "nativeSrc": "15746:18:18", + "nodeType": "YulFunctionCall", + "src": "15746:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15738:4:18", + "nodeType": "YulIdentifier", + "src": "15738:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15785:9:18", + "nodeType": "YulIdentifier", + "src": "15785:9:18" + }, + { + "kind": "number", + "nativeSrc": "15796:1:18", + "nodeType": "YulLiteral", + "src": "15796:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15781:3:18", + "nodeType": "YulIdentifier", + "src": "15781:3:18" + }, + "nativeSrc": "15781:17:18", + "nodeType": "YulFunctionCall", + "src": "15781:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15804:4:18", + "nodeType": "YulIdentifier", + "src": "15804:4:18" + }, + { + "name": "headStart", + "nativeSrc": "15810:9:18", + "nodeType": "YulIdentifier", + "src": "15810:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15800:3:18", + "nodeType": "YulIdentifier", + "src": "15800:3:18" + }, + "nativeSrc": "15800:20:18", + "nodeType": "YulFunctionCall", + "src": "15800:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15774:6:18", + "nodeType": "YulIdentifier", + "src": "15774:6:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulFunctionCall", + "src": "15774:47:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulExpressionStatement", + "src": "15774:47:18" + }, + { + "nativeSrc": "15830:116:18", + "nodeType": "YulAssignment", + "src": "15830:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15932:6:18", + "nodeType": "YulIdentifier", + "src": "15932:6:18" + }, + { + "name": "tail", + "nativeSrc": "15941:4:18", + "nodeType": "YulIdentifier", + "src": "15941:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15838:93:18", + "nodeType": "YulIdentifier", + "src": "15838:93:18" + }, + "nativeSrc": "15838:108:18", + "nodeType": "YulFunctionCall", + "src": "15838:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15830:4:18", + "nodeType": "YulIdentifier", + "src": "15830:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "15580:373:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15700:9:18", + "nodeType": "YulTypedName", + "src": "15700:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15712:6:18", + "nodeType": "YulTypedName", + "src": "15712:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15723:4:18", + "nodeType": "YulTypedName", + "src": "15723:4:18", + "type": "" + } + ], + "src": "15580:373:18" + }, + { + "body": { + "nativeSrc": "16085:817:18", + "nodeType": "YulBlock", + "src": "16085:817:18", + "statements": [ + { + "body": { + "nativeSrc": "16132:83:18", + "nodeType": "YulBlock", + "src": "16132:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "16134:77:18", + "nodeType": "YulIdentifier", + "src": "16134:77:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulFunctionCall", + "src": "16134:79:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulExpressionStatement", + "src": "16134:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "16106:7:18", + "nodeType": "YulIdentifier", + "src": "16106:7:18" + }, + { + "name": "headStart", + "nativeSrc": "16115:9:18", + "nodeType": "YulIdentifier", + "src": "16115:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16102:3:18", + "nodeType": "YulIdentifier", + "src": "16102:3:18" + }, + "nativeSrc": "16102:23:18", + "nodeType": "YulFunctionCall", + "src": "16102:23:18" + }, + { + "kind": "number", + "nativeSrc": "16127:3:18", + "nodeType": "YulLiteral", + "src": "16127:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "16098:3:18", + "nodeType": "YulIdentifier", + "src": "16098:3:18" + }, + "nativeSrc": "16098:33:18", + "nodeType": "YulFunctionCall", + "src": "16098:33:18" + }, + "nativeSrc": "16095:120:18", + "nodeType": "YulIf", + "src": "16095:120:18" + }, + { + "nativeSrc": "16225:117:18", + "nodeType": "YulBlock", + "src": "16225:117:18", + "statements": [ + { + "nativeSrc": "16240:15:18", + "nodeType": "YulVariableDeclaration", + "src": "16240:15:18", + "value": { + "kind": "number", + "nativeSrc": "16254:1:18", + "nodeType": "YulLiteral", + "src": "16254:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16244:6:18", + "nodeType": "YulTypedName", + "src": "16244:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16269:63:18", + "nodeType": "YulAssignment", + "src": "16269:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16304:9:18", + "nodeType": "YulIdentifier", + "src": "16304:9:18" + }, + { + "name": "offset", + "nativeSrc": "16315:6:18", + "nodeType": "YulIdentifier", + "src": "16315:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16300:3:18", + "nodeType": "YulIdentifier", + "src": "16300:3:18" + }, + "nativeSrc": "16300:22:18", + "nodeType": "YulFunctionCall", + "src": "16300:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16324:7:18", + "nodeType": "YulIdentifier", + "src": "16324:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "16279:20:18", + "nodeType": "YulIdentifier", + "src": "16279:20:18" + }, + "nativeSrc": "16279:53:18", + "nodeType": "YulFunctionCall", + "src": "16279:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16269:6:18", + "nodeType": "YulIdentifier", + "src": "16269:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16352:118:18", + "nodeType": "YulBlock", + "src": "16352:118:18", + "statements": [ + { + "nativeSrc": "16367:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16367:16:18", + "value": { + "kind": "number", + "nativeSrc": "16381:2:18", + "nodeType": "YulLiteral", + "src": "16381:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16371:6:18", + "nodeType": "YulTypedName", + "src": "16371:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16397:63:18", + "nodeType": "YulAssignment", + "src": "16397:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16432:9:18", + "nodeType": "YulIdentifier", + "src": "16432:9:18" + }, + { + "name": "offset", + "nativeSrc": "16443:6:18", + "nodeType": "YulIdentifier", + "src": "16443:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16428:3:18", + "nodeType": "YulIdentifier", + "src": "16428:3:18" + }, + "nativeSrc": "16428:22:18", + "nodeType": "YulFunctionCall", + "src": "16428:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16452:7:18", + "nodeType": "YulIdentifier", + "src": "16452:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16407:20:18", + "nodeType": "YulIdentifier", + "src": "16407:20:18" + }, + "nativeSrc": "16407:53:18", + "nodeType": "YulFunctionCall", + "src": "16407:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16397:6:18", + "nodeType": "YulIdentifier", + "src": "16397:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16480:118:18", + "nodeType": "YulBlock", + "src": "16480:118:18", + "statements": [ + { + "nativeSrc": "16495:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16495:16:18", + "value": { + "kind": "number", + "nativeSrc": "16509:2:18", + "nodeType": "YulLiteral", + "src": "16509:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16499:6:18", + "nodeType": "YulTypedName", + "src": "16499:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16525:63:18", + "nodeType": "YulAssignment", + "src": "16525:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16560:9:18", + "nodeType": "YulIdentifier", + "src": "16560:9:18" + }, + { + "name": "offset", + "nativeSrc": "16571:6:18", + "nodeType": "YulIdentifier", + "src": "16571:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16556:3:18", + "nodeType": "YulIdentifier", + "src": "16556:3:18" + }, + "nativeSrc": "16556:22:18", + "nodeType": "YulFunctionCall", + "src": "16556:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16580:7:18", + "nodeType": "YulIdentifier", + "src": "16580:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16535:20:18", + "nodeType": "YulIdentifier", + "src": "16535:20:18" + }, + "nativeSrc": "16535:53:18", + "nodeType": "YulFunctionCall", + "src": "16535:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "16525:6:18", + "nodeType": "YulIdentifier", + "src": "16525:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16608:287:18", + "nodeType": "YulBlock", + "src": "16608:287:18", + "statements": [ + { + "nativeSrc": "16623:46:18", + "nodeType": "YulVariableDeclaration", + "src": "16623:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16654:9:18", + "nodeType": "YulIdentifier", + "src": "16654:9:18" + }, + { + "kind": "number", + "nativeSrc": "16665:2:18", + "nodeType": "YulLiteral", + "src": "16665:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16650:3:18", + "nodeType": "YulIdentifier", + "src": "16650:3:18" + }, + "nativeSrc": "16650:18:18", + "nodeType": "YulFunctionCall", + "src": "16650:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16637:12:18", + "nodeType": "YulIdentifier", + "src": "16637:12:18" + }, + "nativeSrc": "16637:32:18", + "nodeType": "YulFunctionCall", + "src": "16637:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16627:6:18", + "nodeType": "YulTypedName", + "src": "16627:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16716:83:18", + "nodeType": "YulBlock", + "src": "16716:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "16718:77:18", + "nodeType": "YulIdentifier", + "src": "16718:77:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulFunctionCall", + "src": "16718:79:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulExpressionStatement", + "src": "16718:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16688:6:18", + "nodeType": "YulIdentifier", + "src": "16688:6:18" + }, + { + "kind": "number", + "nativeSrc": "16696:18:18", + "nodeType": "YulLiteral", + "src": "16696:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16685:2:18", + "nodeType": "YulIdentifier", + "src": "16685:2:18" + }, + "nativeSrc": "16685:30:18", + "nodeType": "YulFunctionCall", + "src": "16685:30:18" + }, + "nativeSrc": "16682:117:18", + "nodeType": "YulIf", + "src": "16682:117:18" + }, + { + "nativeSrc": "16813:72:18", + "nodeType": "YulAssignment", + "src": "16813:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16857:9:18", + "nodeType": "YulIdentifier", + "src": "16857:9:18" + }, + { + "name": "offset", + "nativeSrc": "16868:6:18", + "nodeType": "YulIdentifier", + "src": "16868:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16853:3:18", + "nodeType": "YulIdentifier", + "src": "16853:3:18" + }, + "nativeSrc": "16853:22:18", + "nodeType": "YulFunctionCall", + "src": "16853:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16877:7:18", + "nodeType": "YulIdentifier", + "src": "16877:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "16823:29:18", + "nodeType": "YulIdentifier", + "src": "16823:29:18" + }, + "nativeSrc": "16823:62:18", + "nodeType": "YulFunctionCall", + "src": "16823:62:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "16813:6:18", + "nodeType": "YulIdentifier", + "src": "16813:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "15959:943:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16031:9:18", + "nodeType": "YulTypedName", + "src": "16031:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16042:7:18", + "nodeType": "YulTypedName", + "src": "16042:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16054:6:18", + "nodeType": "YulTypedName", + "src": "16054:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16062:6:18", + "nodeType": "YulTypedName", + "src": "16062:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "16070:6:18", + "nodeType": "YulTypedName", + "src": "16070:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "16078:6:18", + "nodeType": "YulTypedName", + "src": "16078:6:18", + "type": "" + } + ], + "src": "15959:943:18" + }, + { + "body": { + "nativeSrc": "16975:241:18", + "nodeType": "YulBlock", + "src": "16975:241:18", + "statements": [ + { + "body": { + "nativeSrc": "17080:22:18", + "nodeType": "YulBlock", + "src": "17080:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "17082:16:18", + "nodeType": "YulIdentifier", + "src": "17082:16:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulFunctionCall", + "src": "17082:18:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulExpressionStatement", + "src": "17082:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "17052:6:18", + "nodeType": "YulIdentifier", + "src": "17052:6:18" + }, + { + "kind": "number", + "nativeSrc": "17060:18:18", + "nodeType": "YulLiteral", + "src": "17060:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17049:2:18", + "nodeType": "YulIdentifier", + "src": "17049:2:18" + }, + "nativeSrc": "17049:30:18", + "nodeType": "YulFunctionCall", + "src": "17049:30:18" + }, + "nativeSrc": "17046:56:18", + "nodeType": "YulIf", + "src": "17046:56:18" + }, + { + "nativeSrc": "17112:37:18", + "nodeType": "YulAssignment", + "src": "17112:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "17142:6:18", + "nodeType": "YulIdentifier", + "src": "17142:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "17120:21:18", + "nodeType": "YulIdentifier", + "src": "17120:21:18" + }, + "nativeSrc": "17120:29:18", + "nodeType": "YulFunctionCall", + "src": "17120:29:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "17112:4:18", + "nodeType": "YulIdentifier", + "src": "17112:4:18" + } + ] + }, + { + "nativeSrc": "17186:23:18", + "nodeType": "YulAssignment", + "src": "17186:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "17198:4:18", + "nodeType": "YulIdentifier", + "src": "17198:4:18" + }, + { + "kind": "number", + "nativeSrc": "17204:4:18", + "nodeType": "YulLiteral", + "src": "17204:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17194:3:18", + "nodeType": "YulIdentifier", + "src": "17194:3:18" + }, + "nativeSrc": "17194:15:18", + "nodeType": "YulFunctionCall", + "src": "17194:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "17186:4:18", + "nodeType": "YulIdentifier", + "src": "17186:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "16908:308:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "16959:6:18", + "nodeType": "YulTypedName", + "src": "16959:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "16970:4:18", + "nodeType": "YulTypedName", + "src": "16970:4:18", + "type": "" + } + ], + "src": "16908:308:18" + }, + { + "body": { + "nativeSrc": "17306:341:18", + "nodeType": "YulBlock", + "src": "17306:341:18", + "statements": [ + { + "nativeSrc": "17316:75:18", + "nodeType": "YulAssignment", + "src": "17316:75:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "17383:6:18", + "nodeType": "YulIdentifier", + "src": "17383:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "17341:41:18", + "nodeType": "YulIdentifier", + "src": "17341:41:18" + }, + "nativeSrc": "17341:49:18", + "nodeType": "YulFunctionCall", + "src": "17341:49:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "17325:15:18", + "nodeType": "YulIdentifier", + "src": "17325:15:18" + }, + "nativeSrc": "17325:66:18", + "nodeType": "YulFunctionCall", + "src": "17325:66:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "17316:5:18", + "nodeType": "YulIdentifier", + "src": "17316:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17407:5:18", + "nodeType": "YulIdentifier", + "src": "17407:5:18" + }, + { + "name": "length", + "nativeSrc": "17414:6:18", + "nodeType": "YulIdentifier", + "src": "17414:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17400:6:18", + "nodeType": "YulIdentifier", + "src": "17400:6:18" + }, + "nativeSrc": "17400:21:18", + "nodeType": "YulFunctionCall", + "src": "17400:21:18" + }, + "nativeSrc": "17400:21:18", + "nodeType": "YulExpressionStatement", + "src": "17400:21:18" + }, + { + "nativeSrc": "17430:27:18", + "nodeType": "YulVariableDeclaration", + "src": "17430:27:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17445:5:18", + "nodeType": "YulIdentifier", + "src": "17445:5:18" + }, + { + "kind": "number", + "nativeSrc": "17452:4:18", + "nodeType": "YulLiteral", + "src": "17452:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17441:3:18", + "nodeType": "YulIdentifier", + "src": "17441:3:18" + }, + "nativeSrc": "17441:16:18", + "nodeType": "YulFunctionCall", + "src": "17441:16:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "17434:3:18", + "nodeType": "YulTypedName", + "src": "17434:3:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17495:83:18", + "nodeType": "YulBlock", + "src": "17495:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "17497:77:18", + "nodeType": "YulIdentifier", + "src": "17497:77:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulFunctionCall", + "src": "17497:79:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulExpressionStatement", + "src": "17497:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "17476:3:18", + "nodeType": "YulIdentifier", + "src": "17476:3:18" + }, + { + "name": "length", + "nativeSrc": "17481:6:18", + "nodeType": "YulIdentifier", + "src": "17481:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17472:3:18", + "nodeType": "YulIdentifier", + "src": "17472:3:18" + }, + "nativeSrc": "17472:16:18", + "nodeType": "YulFunctionCall", + "src": "17472:16:18" + }, + { + "name": "end", + "nativeSrc": "17490:3:18", + "nodeType": "YulIdentifier", + "src": "17490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17469:2:18", + "nodeType": "YulIdentifier", + "src": "17469:2:18" + }, + "nativeSrc": "17469:25:18", + "nodeType": "YulFunctionCall", + "src": "17469:25:18" + }, + "nativeSrc": "17466:112:18", + "nodeType": "YulIf", + "src": "17466:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17624:3:18", + "nodeType": "YulIdentifier", + "src": "17624:3:18" + }, + { + "name": "dst", + "nativeSrc": "17629:3:18", + "nodeType": "YulIdentifier", + "src": "17629:3:18" + }, + { + "name": "length", + "nativeSrc": "17634:6:18", + "nodeType": "YulIdentifier", + "src": "17634:6:18" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "17587:36:18", + "nodeType": "YulIdentifier", + "src": "17587:36:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulFunctionCall", + "src": "17587:54:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulExpressionStatement", + "src": "17587:54:18" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17222:425:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "17279:3:18", + "nodeType": "YulTypedName", + "src": "17279:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "17284:6:18", + "nodeType": "YulTypedName", + "src": "17284:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17292:3:18", + "nodeType": "YulTypedName", + "src": "17292:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "17300:5:18", + "nodeType": "YulTypedName", + "src": "17300:5:18", + "type": "" + } + ], + "src": "17222:425:18" + }, + { + "body": { + "nativeSrc": "17729:278:18", + "nodeType": "YulBlock", + "src": "17729:278:18", + "statements": [ + { + "body": { + "nativeSrc": "17778:83:18", + "nodeType": "YulBlock", + "src": "17778:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "17780:77:18", + "nodeType": "YulIdentifier", + "src": "17780:77:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulFunctionCall", + "src": "17780:79:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulExpressionStatement", + "src": "17780:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17757:6:18", + "nodeType": "YulIdentifier", + "src": "17757:6:18" + }, + { + "kind": "number", + "nativeSrc": "17765:4:18", + "nodeType": "YulLiteral", + "src": "17765:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17753:3:18", + "nodeType": "YulIdentifier", + "src": "17753:3:18" + }, + "nativeSrc": "17753:17:18", + "nodeType": "YulFunctionCall", + "src": "17753:17:18" + }, + { + "name": "end", + "nativeSrc": "17772:3:18", + "nodeType": "YulIdentifier", + "src": "17772:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17749:3:18", + "nodeType": "YulIdentifier", + "src": "17749:3:18" + }, + "nativeSrc": "17749:27:18", + "nodeType": "YulFunctionCall", + "src": "17749:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17742:6:18", + "nodeType": "YulIdentifier", + "src": "17742:6:18" + }, + "nativeSrc": "17742:35:18", + "nodeType": "YulFunctionCall", + "src": "17742:35:18" + }, + "nativeSrc": "17739:122:18", + "nodeType": "YulIf", + "src": "17739:122:18" + }, + { + "nativeSrc": "17870:34:18", + "nodeType": "YulVariableDeclaration", + "src": "17870:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17897:6:18", + "nodeType": "YulIdentifier", + "src": "17897:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "17884:12:18", + "nodeType": "YulIdentifier", + "src": "17884:12:18" + }, + "nativeSrc": "17884:20:18", + "nodeType": "YulFunctionCall", + "src": "17884:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "17874:6:18", + "nodeType": "YulTypedName", + "src": "17874:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "17913:88:18", + "nodeType": "YulAssignment", + "src": "17913:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17974:6:18", + "nodeType": "YulIdentifier", + "src": "17974:6:18" + }, + { + "kind": "number", + "nativeSrc": "17982:4:18", + "nodeType": "YulLiteral", + "src": "17982:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17970:3:18", + "nodeType": "YulIdentifier", + "src": "17970:3:18" + }, + "nativeSrc": "17970:17:18", + "nodeType": "YulFunctionCall", + "src": "17970:17:18" + }, + { + "name": "length", + "nativeSrc": "17989:6:18", + "nodeType": "YulIdentifier", + "src": "17989:6:18" + }, + { + "name": "end", + "nativeSrc": "17997:3:18", + "nodeType": "YulIdentifier", + "src": "17997:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17922:47:18", + "nodeType": "YulIdentifier", + "src": "17922:47:18" + }, + "nativeSrc": "17922:79:18", + "nodeType": "YulFunctionCall", + "src": "17922:79:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "17913:5:18", + "nodeType": "YulIdentifier", + "src": "17913:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "17667:340:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "17707:6:18", + "nodeType": "YulTypedName", + "src": "17707:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17715:3:18", + "nodeType": "YulTypedName", + "src": "17715:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "17723:5:18", + "nodeType": "YulTypedName", + "src": "17723:5:18", + "type": "" + } + ], + "src": "17667:340:18" + }, + { + "body": { + "nativeSrc": "18106:561:18", + "nodeType": "YulBlock", + "src": "18106:561:18", + "statements": [ + { + "body": { + "nativeSrc": "18152:83:18", + "nodeType": "YulBlock", + "src": "18152:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18154:77:18", + "nodeType": "YulIdentifier", + "src": "18154:77:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulFunctionCall", + "src": "18154:79:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulExpressionStatement", + "src": "18154:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18127:7:18", + "nodeType": "YulIdentifier", + "src": "18127:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18136:9:18", + "nodeType": "YulIdentifier", + "src": "18136:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18123:3:18", + "nodeType": "YulIdentifier", + "src": "18123:3:18" + }, + "nativeSrc": "18123:23:18", + "nodeType": "YulFunctionCall", + "src": "18123:23:18" + }, + { + "kind": "number", + "nativeSrc": "18148:2:18", + "nodeType": "YulLiteral", + "src": "18148:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18119:3:18", + "nodeType": "YulIdentifier", + "src": "18119:3:18" + }, + "nativeSrc": "18119:32:18", + "nodeType": "YulFunctionCall", + "src": "18119:32:18" + }, + "nativeSrc": "18116:119:18", + "nodeType": "YulIf", + "src": "18116:119:18" + }, + { + "nativeSrc": "18245:117:18", + "nodeType": "YulBlock", + "src": "18245:117:18", + "statements": [ + { + "nativeSrc": "18260:15:18", + "nodeType": "YulVariableDeclaration", + "src": "18260:15:18", + "value": { + "kind": "number", + "nativeSrc": "18274:1:18", + "nodeType": "YulLiteral", + "src": "18274:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18264:6:18", + "nodeType": "YulTypedName", + "src": "18264:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "18289:63:18", + "nodeType": "YulAssignment", + "src": "18289:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18324:9:18", + "nodeType": "YulIdentifier", + "src": "18324:9:18" + }, + { + "name": "offset", + "nativeSrc": "18335:6:18", + "nodeType": "YulIdentifier", + "src": "18335:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18320:3:18", + "nodeType": "YulIdentifier", + "src": "18320:3:18" + }, + "nativeSrc": "18320:22:18", + "nodeType": "YulFunctionCall", + "src": "18320:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18344:7:18", + "nodeType": "YulIdentifier", + "src": "18344:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "18299:20:18", + "nodeType": "YulIdentifier", + "src": "18299:20:18" + }, + "nativeSrc": "18299:53:18", + "nodeType": "YulFunctionCall", + "src": "18299:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18289:6:18", + "nodeType": "YulIdentifier", + "src": "18289:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "18372:288:18", + "nodeType": "YulBlock", + "src": "18372:288:18", + "statements": [ + { + "nativeSrc": "18387:46:18", + "nodeType": "YulVariableDeclaration", + "src": "18387:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18418:9:18", + "nodeType": "YulIdentifier", + "src": "18418:9:18" + }, + { + "kind": "number", + "nativeSrc": "18429:2:18", + "nodeType": "YulLiteral", + "src": "18429:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18414:3:18", + "nodeType": "YulIdentifier", + "src": "18414:3:18" + }, + "nativeSrc": "18414:18:18", + "nodeType": "YulFunctionCall", + "src": "18414:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18401:12:18", + "nodeType": "YulIdentifier", + "src": "18401:12:18" + }, + "nativeSrc": "18401:32:18", + "nodeType": "YulFunctionCall", + "src": "18401:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18391:6:18", + "nodeType": "YulTypedName", + "src": "18391:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18480:83:18", + "nodeType": "YulBlock", + "src": "18480:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18482:77:18", + "nodeType": "YulIdentifier", + "src": "18482:77:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulFunctionCall", + "src": "18482:79:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulExpressionStatement", + "src": "18482:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18452:6:18", + "nodeType": "YulIdentifier", + "src": "18452:6:18" + }, + { + "kind": "number", + "nativeSrc": "18460:18:18", + "nodeType": "YulLiteral", + "src": "18460:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18449:2:18", + "nodeType": "YulIdentifier", + "src": "18449:2:18" + }, + "nativeSrc": "18449:30:18", + "nodeType": "YulFunctionCall", + "src": "18449:30:18" + }, + "nativeSrc": "18446:117:18", + "nodeType": "YulIf", + "src": "18446:117:18" + }, + { + "nativeSrc": "18577:73:18", + "nodeType": "YulAssignment", + "src": "18577:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18622:9:18", + "nodeType": "YulIdentifier", + "src": "18622:9:18" + }, + { + "name": "offset", + "nativeSrc": "18633:6:18", + "nodeType": "YulIdentifier", + "src": "18633:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18618:3:18", + "nodeType": "YulIdentifier", + "src": "18618:3:18" + }, + "nativeSrc": "18618:22:18", + "nodeType": "YulFunctionCall", + "src": "18618:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18642:7:18", + "nodeType": "YulIdentifier", + "src": "18642:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "18587:30:18", + "nodeType": "YulIdentifier", + "src": "18587:30:18" + }, + "nativeSrc": "18587:63:18", + "nodeType": "YulFunctionCall", + "src": "18587:63:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "18577:6:18", + "nodeType": "YulIdentifier", + "src": "18577:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", + "nativeSrc": "18013:654:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18068:9:18", + "nodeType": "YulTypedName", + "src": "18068:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "18079:7:18", + "nodeType": "YulTypedName", + "src": "18079:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "18091:6:18", + "nodeType": "YulTypedName", + "src": "18091:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18099:6:18", + "nodeType": "YulTypedName", + "src": "18099:6:18", + "type": "" + } + ], + "src": "18013:654:18" + }, + { + "body": { + "nativeSrc": "18749:433:18", + "nodeType": "YulBlock", + "src": "18749:433:18", + "statements": [ + { + "body": { + "nativeSrc": "18795:83:18", + "nodeType": "YulBlock", + "src": "18795:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18797:77:18", + "nodeType": "YulIdentifier", + "src": "18797:77:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulFunctionCall", + "src": "18797:79:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulExpressionStatement", + "src": "18797:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18770:7:18", + "nodeType": "YulIdentifier", + "src": "18770:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18779:9:18", + "nodeType": "YulIdentifier", + "src": "18779:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18766:3:18", + "nodeType": "YulIdentifier", + "src": "18766:3:18" + }, + "nativeSrc": "18766:23:18", + "nodeType": "YulFunctionCall", + "src": "18766:23:18" + }, + { + "kind": "number", + "nativeSrc": "18791:2:18", + "nodeType": "YulLiteral", + "src": "18791:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18762:3:18", + "nodeType": "YulIdentifier", + "src": "18762:3:18" + }, + "nativeSrc": "18762:32:18", + "nodeType": "YulFunctionCall", + "src": "18762:32:18" + }, + "nativeSrc": "18759:119:18", + "nodeType": "YulIf", + "src": "18759:119:18" + }, + { + "nativeSrc": "18888:287:18", + "nodeType": "YulBlock", + "src": "18888:287:18", + "statements": [ + { + "nativeSrc": "18903:45:18", + "nodeType": "YulVariableDeclaration", + "src": "18903:45:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18934:9:18", + "nodeType": "YulIdentifier", + "src": "18934:9:18" + }, + { + "kind": "number", + "nativeSrc": "18945:1:18", + "nodeType": "YulLiteral", + "src": "18945:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18930:3:18", + "nodeType": "YulIdentifier", + "src": "18930:3:18" + }, + "nativeSrc": "18930:17:18", + "nodeType": "YulFunctionCall", + "src": "18930:17:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18917:12:18", + "nodeType": "YulIdentifier", + "src": "18917:12:18" + }, + "nativeSrc": "18917:31:18", + "nodeType": "YulFunctionCall", + "src": "18917:31:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18907:6:18", + "nodeType": "YulTypedName", + "src": "18907:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18995:83:18", + "nodeType": "YulBlock", + "src": "18995:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18997:77:18", + "nodeType": "YulIdentifier", + "src": "18997:77:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulFunctionCall", + "src": "18997:79:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulExpressionStatement", + "src": "18997:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18967:6:18", + "nodeType": "YulIdentifier", + "src": "18967:6:18" + }, + { + "kind": "number", + "nativeSrc": "18975:18:18", + "nodeType": "YulLiteral", + "src": "18975:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18964:2:18", + "nodeType": "YulIdentifier", + "src": "18964:2:18" + }, + "nativeSrc": "18964:30:18", + "nodeType": "YulFunctionCall", + "src": "18964:30:18" + }, + "nativeSrc": "18961:117:18", + "nodeType": "YulIf", + "src": "18961:117:18" + }, + { + "nativeSrc": "19092:73:18", + "nodeType": "YulAssignment", + "src": "19092:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19137:9:18", + "nodeType": "YulIdentifier", + "src": "19137:9:18" + }, + { + "name": "offset", + "nativeSrc": "19148:6:18", + "nodeType": "YulIdentifier", + "src": "19148:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19133:3:18", + "nodeType": "YulIdentifier", + "src": "19133:3:18" + }, + "nativeSrc": "19133:22:18", + "nodeType": "YulFunctionCall", + "src": "19133:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19157:7:18", + "nodeType": "YulIdentifier", + "src": "19157:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "19102:30:18", + "nodeType": "YulIdentifier", + "src": "19102:30:18" + }, + "nativeSrc": "19102:63:18", + "nodeType": "YulFunctionCall", + "src": "19102:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19092:6:18", + "nodeType": "YulIdentifier", + "src": "19092:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "18673:509:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18719:9:18", + "nodeType": "YulTypedName", + "src": "18719:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "18730:7:18", + "nodeType": "YulTypedName", + "src": "18730:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "18742:6:18", + "nodeType": "YulTypedName", + "src": "18742:6:18", + "type": "" + } + ], + "src": "18673:509:18" + }, + { + "body": { + "nativeSrc": "19228:76:18", + "nodeType": "YulBlock", + "src": "19228:76:18", + "statements": [ + { + "body": { + "nativeSrc": "19282:16:18", + "nodeType": "YulBlock", + "src": "19282:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19291:1:18", + "nodeType": "YulLiteral", + "src": "19291:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19294:1:18", + "nodeType": "YulLiteral", + "src": "19294:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19284:6:18", + "nodeType": "YulIdentifier", + "src": "19284:6:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulFunctionCall", + "src": "19284:12:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulExpressionStatement", + "src": "19284:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19251:5:18", + "nodeType": "YulIdentifier", + "src": "19251:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19273:5:18", + "nodeType": "YulIdentifier", + "src": "19273:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "19258:14:18", + "nodeType": "YulIdentifier", + "src": "19258:14:18" + }, + "nativeSrc": "19258:21:18", + "nodeType": "YulFunctionCall", + "src": "19258:21:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "19248:2:18", + "nodeType": "YulIdentifier", + "src": "19248:2:18" + }, + "nativeSrc": "19248:32:18", + "nodeType": "YulFunctionCall", + "src": "19248:32:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "19241:6:18", + "nodeType": "YulIdentifier", + "src": "19241:6:18" + }, + "nativeSrc": "19241:40:18", + "nodeType": "YulFunctionCall", + "src": "19241:40:18" + }, + "nativeSrc": "19238:60:18", + "nodeType": "YulIf", + "src": "19238:60:18" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "19188:116:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19221:5:18", + "nodeType": "YulTypedName", + "src": "19221:5:18", + "type": "" + } + ], + "src": "19188:116:18" + }, + { + "body": { + "nativeSrc": "19359:84:18", + "nodeType": "YulBlock", + "src": "19359:84:18", + "statements": [ + { + "nativeSrc": "19369:29:18", + "nodeType": "YulAssignment", + "src": "19369:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "19391:6:18", + "nodeType": "YulIdentifier", + "src": "19391:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "19378:12:18", + "nodeType": "YulIdentifier", + "src": "19378:12:18" + }, + "nativeSrc": "19378:20:18", + "nodeType": "YulFunctionCall", + "src": "19378:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19369:5:18", + "nodeType": "YulIdentifier", + "src": "19369:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "19431:5:18", + "nodeType": "YulIdentifier", + "src": "19431:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "19407:23:18", + "nodeType": "YulIdentifier", + "src": "19407:23:18" + }, + "nativeSrc": "19407:30:18", + "nodeType": "YulFunctionCall", + "src": "19407:30:18" + }, + "nativeSrc": "19407:30:18", + "nodeType": "YulExpressionStatement", + "src": "19407:30:18" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "19310:133:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "19337:6:18", + "nodeType": "YulTypedName", + "src": "19337:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "19345:3:18", + "nodeType": "YulTypedName", + "src": "19345:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "19353:5:18", + "nodeType": "YulTypedName", + "src": "19353:5:18", + "type": "" + } + ], + "src": "19310:133:18" + }, + { + "body": { + "nativeSrc": "19529:388:18", + "nodeType": "YulBlock", + "src": "19529:388:18", + "statements": [ + { + "body": { + "nativeSrc": "19575:83:18", + "nodeType": "YulBlock", + "src": "19575:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "19577:77:18", + "nodeType": "YulIdentifier", + "src": "19577:77:18" + }, + "nativeSrc": "19577:79:18", + "nodeType": "YulFunctionCall", + "src": "19577:79:18" + }, + "nativeSrc": "19577:79:18", + "nodeType": "YulExpressionStatement", + "src": "19577:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19550:7:18", + "nodeType": "YulIdentifier", + "src": "19550:7:18" + }, + { + "name": "headStart", + "nativeSrc": "19559:9:18", + "nodeType": "YulIdentifier", + "src": "19559:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19546:3:18", + "nodeType": "YulIdentifier", + "src": "19546:3:18" + }, + "nativeSrc": "19546:23:18", + "nodeType": "YulFunctionCall", + "src": "19546:23:18" + }, + { + "kind": "number", + "nativeSrc": "19571:2:18", + "nodeType": "YulLiteral", + "src": "19571:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "19542:3:18", + "nodeType": "YulIdentifier", + "src": "19542:3:18" + }, + "nativeSrc": "19542:32:18", + "nodeType": "YulFunctionCall", + "src": "19542:32:18" + }, + "nativeSrc": "19539:119:18", + "nodeType": "YulIf", + "src": "19539:119:18" + }, + { + "nativeSrc": "19668:117:18", + "nodeType": "YulBlock", + "src": "19668:117:18", + "statements": [ + { + "nativeSrc": "19683:15:18", + "nodeType": "YulVariableDeclaration", + "src": "19683:15:18", + "value": { + "kind": "number", + "nativeSrc": "19697:1:18", + "nodeType": "YulLiteral", + "src": "19697:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19687:6:18", + "nodeType": "YulTypedName", + "src": "19687:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19712:63:18", + "nodeType": "YulAssignment", + "src": "19712:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19747:9:18", + "nodeType": "YulIdentifier", + "src": "19747:9:18" + }, + { + "name": "offset", + "nativeSrc": "19758:6:18", + "nodeType": "YulIdentifier", + "src": "19758:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19743:3:18", + "nodeType": "YulIdentifier", + "src": "19743:3:18" + }, + "nativeSrc": "19743:22:18", + "nodeType": "YulFunctionCall", + "src": "19743:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19767:7:18", + "nodeType": "YulIdentifier", + "src": "19767:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "19722:20:18", + "nodeType": "YulIdentifier", + "src": "19722:20:18" + }, + "nativeSrc": "19722:53:18", + "nodeType": "YulFunctionCall", + "src": "19722:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19712:6:18", + "nodeType": "YulIdentifier", + "src": "19712:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "19795:115:18", + "nodeType": "YulBlock", + "src": "19795:115:18", + "statements": [ + { + "nativeSrc": "19810:16:18", + "nodeType": "YulVariableDeclaration", + "src": "19810:16:18", + "value": { + "kind": "number", + "nativeSrc": "19824:2:18", + "nodeType": "YulLiteral", + "src": "19824:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19814:6:18", + "nodeType": "YulTypedName", + "src": "19814:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19840:60:18", + "nodeType": "YulAssignment", + "src": "19840:60:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19872:9:18", + "nodeType": "YulIdentifier", + "src": "19872:9:18" + }, + { + "name": "offset", + "nativeSrc": "19883:6:18", + "nodeType": "YulIdentifier", + "src": "19883:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19868:3:18", + "nodeType": "YulIdentifier", + "src": "19868:3:18" + }, + "nativeSrc": "19868:22:18", + "nodeType": "YulFunctionCall", + "src": "19868:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19892:7:18", + "nodeType": "YulIdentifier", + "src": "19892:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "19850:17:18", + "nodeType": "YulIdentifier", + "src": "19850:17:18" + }, + "nativeSrc": "19850:50:18", + "nodeType": "YulFunctionCall", + "src": "19850:50:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "19840:6:18", + "nodeType": "YulIdentifier", + "src": "19840:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "19449:468:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19491:9:18", + "nodeType": "YulTypedName", + "src": "19491:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19502:7:18", + "nodeType": "YulTypedName", + "src": "19502:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19514:6:18", + "nodeType": "YulTypedName", + "src": "19514:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19522:6:18", + "nodeType": "YulTypedName", + "src": "19522:6:18", + "type": "" + } + ], + "src": "19449:468:18" + }, + { + "body": { + "nativeSrc": "20006:391:18", + "nodeType": "YulBlock", + "src": "20006:391:18", + "statements": [ + { + "body": { + "nativeSrc": "20052:83:18", + "nodeType": "YulBlock", + "src": "20052:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20054:77:18", + "nodeType": "YulIdentifier", + "src": "20054:77:18" + }, + "nativeSrc": "20054:79:18", + "nodeType": "YulFunctionCall", + "src": "20054:79:18" + }, + "nativeSrc": "20054:79:18", + "nodeType": "YulExpressionStatement", + "src": "20054:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20027:7:18", + "nodeType": "YulIdentifier", + "src": "20027:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20036:9:18", + "nodeType": "YulIdentifier", + "src": "20036:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20023:3:18", + "nodeType": "YulIdentifier", + "src": "20023:3:18" + }, + "nativeSrc": "20023:23:18", + "nodeType": "YulFunctionCall", + "src": "20023:23:18" + }, + { + "kind": "number", + "nativeSrc": "20048:2:18", + "nodeType": "YulLiteral", + "src": "20048:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20019:3:18", + "nodeType": "YulIdentifier", + "src": "20019:3:18" + }, + "nativeSrc": "20019:32:18", + "nodeType": "YulFunctionCall", + "src": "20019:32:18" + }, + "nativeSrc": "20016:119:18", + "nodeType": "YulIf", + "src": "20016:119:18" + }, + { + "nativeSrc": "20145:117:18", + "nodeType": "YulBlock", + "src": "20145:117:18", + "statements": [ + { + "nativeSrc": "20160:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20160:15:18", + "value": { + "kind": "number", + "nativeSrc": "20174:1:18", + "nodeType": "YulLiteral", + "src": "20174:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20164:6:18", + "nodeType": "YulTypedName", + "src": "20164:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20189:63:18", + "nodeType": "YulAssignment", + "src": "20189:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20224:9:18", + "nodeType": "YulIdentifier", + "src": "20224:9:18" + }, + { + "name": "offset", + "nativeSrc": "20235:6:18", + "nodeType": "YulIdentifier", + "src": "20235:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20220:3:18", + "nodeType": "YulIdentifier", + "src": "20220:3:18" + }, + "nativeSrc": "20220:22:18", + "nodeType": "YulFunctionCall", + "src": "20220:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20244:7:18", + "nodeType": "YulIdentifier", + "src": "20244:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20199:20:18", + "nodeType": "YulIdentifier", + "src": "20199:20:18" + }, + "nativeSrc": "20199:53:18", + "nodeType": "YulFunctionCall", + "src": "20199:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20189:6:18", + "nodeType": "YulIdentifier", + "src": "20189:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20272:118:18", + "nodeType": "YulBlock", + "src": "20272:118:18", + "statements": [ + { + "nativeSrc": "20287:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20287:16:18", + "value": { + "kind": "number", + "nativeSrc": "20301:2:18", + "nodeType": "YulLiteral", + "src": "20301:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20291:6:18", + "nodeType": "YulTypedName", + "src": "20291:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20317:63:18", + "nodeType": "YulAssignment", + "src": "20317:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20352:9:18", + "nodeType": "YulIdentifier", + "src": "20352:9:18" + }, + { + "name": "offset", + "nativeSrc": "20363:6:18", + "nodeType": "YulIdentifier", + "src": "20363:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20348:3:18", + "nodeType": "YulIdentifier", + "src": "20348:3:18" + }, + "nativeSrc": "20348:22:18", + "nodeType": "YulFunctionCall", + "src": "20348:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20372:7:18", + "nodeType": "YulIdentifier", + "src": "20372:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20327:20:18", + "nodeType": "YulIdentifier", + "src": "20327:20:18" + }, + "nativeSrc": "20327:53:18", + "nodeType": "YulFunctionCall", + "src": "20327:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20317:6:18", + "nodeType": "YulIdentifier", + "src": "20317:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "19923:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19968:9:18", + "nodeType": "YulTypedName", + "src": "19968:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19979:7:18", + "nodeType": "YulTypedName", + "src": "19979:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19991:6:18", + "nodeType": "YulTypedName", + "src": "19991:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19999:6:18", + "nodeType": "YulTypedName", + "src": "19999:6:18", + "type": "" + } + ], + "src": "19923:474:18" + }, + { + "body": { + "nativeSrc": "20546:946:18", + "nodeType": "YulBlock", + "src": "20546:946:18", + "statements": [ + { + "body": { + "nativeSrc": "20593:83:18", + "nodeType": "YulBlock", + "src": "20593:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20595:77:18", + "nodeType": "YulIdentifier", + "src": "20595:77:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulFunctionCall", + "src": "20595:79:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulExpressionStatement", + "src": "20595:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20567:7:18", + "nodeType": "YulIdentifier", + "src": "20567:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20576:9:18", + "nodeType": "YulIdentifier", + "src": "20576:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20563:3:18", + "nodeType": "YulIdentifier", + "src": "20563:3:18" + }, + "nativeSrc": "20563:23:18", + "nodeType": "YulFunctionCall", + "src": "20563:23:18" + }, + { + "kind": "number", + "nativeSrc": "20588:3:18", + "nodeType": "YulLiteral", + "src": "20588:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20559:3:18", + "nodeType": "YulIdentifier", + "src": "20559:3:18" + }, + "nativeSrc": "20559:33:18", + "nodeType": "YulFunctionCall", + "src": "20559:33:18" + }, + "nativeSrc": "20556:120:18", + "nodeType": "YulIf", + "src": "20556:120:18" + }, + { + "nativeSrc": "20686:117:18", + "nodeType": "YulBlock", + "src": "20686:117:18", + "statements": [ + { + "nativeSrc": "20701:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20701:15:18", + "value": { + "kind": "number", + "nativeSrc": "20715:1:18", + "nodeType": "YulLiteral", + "src": "20715:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20705:6:18", + "nodeType": "YulTypedName", + "src": "20705:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20730:63:18", + "nodeType": "YulAssignment", + "src": "20730:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20765:9:18", + "nodeType": "YulIdentifier", + "src": "20765:9:18" + }, + { + "name": "offset", + "nativeSrc": "20776:6:18", + "nodeType": "YulIdentifier", + "src": "20776:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20761:3:18", + "nodeType": "YulIdentifier", + "src": "20761:3:18" + }, + "nativeSrc": "20761:22:18", + "nodeType": "YulFunctionCall", + "src": "20761:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20785:7:18", + "nodeType": "YulIdentifier", + "src": "20785:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20740:20:18", + "nodeType": "YulIdentifier", + "src": "20740:20:18" + }, + "nativeSrc": "20740:53:18", + "nodeType": "YulFunctionCall", + "src": "20740:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20730:6:18", + "nodeType": "YulIdentifier", + "src": "20730:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20813:118:18", + "nodeType": "YulBlock", + "src": "20813:118:18", + "statements": [ + { + "nativeSrc": "20828:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20828:16:18", + "value": { + "kind": "number", + "nativeSrc": "20842:2:18", + "nodeType": "YulLiteral", + "src": "20842:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20832:6:18", + "nodeType": "YulTypedName", + "src": "20832:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20858:63:18", + "nodeType": "YulAssignment", + "src": "20858:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20893:9:18", + "nodeType": "YulIdentifier", + "src": "20893:9:18" + }, + { + "name": "offset", + "nativeSrc": "20904:6:18", + "nodeType": "YulIdentifier", + "src": "20904:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20889:3:18", + "nodeType": "YulIdentifier", + "src": "20889:3:18" + }, + "nativeSrc": "20889:22:18", + "nodeType": "YulFunctionCall", + "src": "20889:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20913:7:18", + "nodeType": "YulIdentifier", + "src": "20913:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20868:20:18", + "nodeType": "YulIdentifier", + "src": "20868:20:18" + }, + "nativeSrc": "20868:53:18", + "nodeType": "YulFunctionCall", + "src": "20868:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20858:6:18", + "nodeType": "YulIdentifier", + "src": "20858:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20941:118:18", + "nodeType": "YulBlock", + "src": "20941:118:18", + "statements": [ + { + "nativeSrc": "20956:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20956:16:18", + "value": { + "kind": "number", + "nativeSrc": "20970:2:18", + "nodeType": "YulLiteral", + "src": "20970:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20960:6:18", + "nodeType": "YulTypedName", + "src": "20960:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20986:63:18", + "nodeType": "YulAssignment", + "src": "20986:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21021:9:18", + "nodeType": "YulIdentifier", + "src": "21021:9:18" + }, + { + "name": "offset", + "nativeSrc": "21032:6:18", + "nodeType": "YulIdentifier", + "src": "21032:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21017:3:18", + "nodeType": "YulIdentifier", + "src": "21017:3:18" + }, + "nativeSrc": "21017:22:18", + "nodeType": "YulFunctionCall", + "src": "21017:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21041:7:18", + "nodeType": "YulIdentifier", + "src": "21041:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "20996:20:18", + "nodeType": "YulIdentifier", + "src": "20996:20:18" + }, + "nativeSrc": "20996:53:18", + "nodeType": "YulFunctionCall", + "src": "20996:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "20986:6:18", + "nodeType": "YulIdentifier", + "src": "20986:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21069:118:18", + "nodeType": "YulBlock", + "src": "21069:118:18", + "statements": [ + { + "nativeSrc": "21084:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21084:16:18", + "value": { + "kind": "number", + "nativeSrc": "21098:2:18", + "nodeType": "YulLiteral", + "src": "21098:2:18", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21088:6:18", + "nodeType": "YulTypedName", + "src": "21088:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21114:63:18", + "nodeType": "YulAssignment", + "src": "21114:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21149:9:18", + "nodeType": "YulIdentifier", + "src": "21149:9:18" + }, + { + "name": "offset", + "nativeSrc": "21160:6:18", + "nodeType": "YulIdentifier", + "src": "21160:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21145:3:18", + "nodeType": "YulIdentifier", + "src": "21145:3:18" + }, + "nativeSrc": "21145:22:18", + "nodeType": "YulFunctionCall", + "src": "21145:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21169:7:18", + "nodeType": "YulIdentifier", + "src": "21169:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21124:20:18", + "nodeType": "YulIdentifier", + "src": "21124:20:18" + }, + "nativeSrc": "21124:53:18", + "nodeType": "YulFunctionCall", + "src": "21124:53:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "21114:6:18", + "nodeType": "YulIdentifier", + "src": "21114:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21197:288:18", + "nodeType": "YulBlock", + "src": "21197:288:18", + "statements": [ + { + "nativeSrc": "21212:47:18", + "nodeType": "YulVariableDeclaration", + "src": "21212:47:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21243:9:18", + "nodeType": "YulIdentifier", + "src": "21243:9:18" + }, + { + "kind": "number", + "nativeSrc": "21254:3:18", + "nodeType": "YulLiteral", + "src": "21254:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21239:3:18", + "nodeType": "YulIdentifier", + "src": "21239:3:18" + }, + "nativeSrc": "21239:19:18", + "nodeType": "YulFunctionCall", + "src": "21239:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21226:12:18", + "nodeType": "YulIdentifier", + "src": "21226:12:18" + }, + "nativeSrc": "21226:33:18", + "nodeType": "YulFunctionCall", + "src": "21226:33:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21216:6:18", + "nodeType": "YulTypedName", + "src": "21216:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21306:83:18", + "nodeType": "YulBlock", + "src": "21306:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "21308:77:18", + "nodeType": "YulIdentifier", + "src": "21308:77:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulFunctionCall", + "src": "21308:79:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulExpressionStatement", + "src": "21308:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "21278:6:18", + "nodeType": "YulIdentifier", + "src": "21278:6:18" + }, + { + "kind": "number", + "nativeSrc": "21286:18:18", + "nodeType": "YulLiteral", + "src": "21286:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21275:2:18", + "nodeType": "YulIdentifier", + "src": "21275:2:18" + }, + "nativeSrc": "21275:30:18", + "nodeType": "YulFunctionCall", + "src": "21275:30:18" + }, + "nativeSrc": "21272:117:18", + "nodeType": "YulIf", + "src": "21272:117:18" + }, + { + "nativeSrc": "21403:72:18", + "nodeType": "YulAssignment", + "src": "21403:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21447:9:18", + "nodeType": "YulIdentifier", + "src": "21447:9:18" + }, + { + "name": "offset", + "nativeSrc": "21458:6:18", + "nodeType": "YulIdentifier", + "src": "21458:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21443:3:18", + "nodeType": "YulIdentifier", + "src": "21443:3:18" + }, + "nativeSrc": "21443:22:18", + "nodeType": "YulFunctionCall", + "src": "21443:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21467:7:18", + "nodeType": "YulIdentifier", + "src": "21467:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "21413:29:18", + "nodeType": "YulIdentifier", + "src": "21413:29:18" + }, + "nativeSrc": "21413:62:18", + "nodeType": "YulFunctionCall", + "src": "21413:62:18" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "21403:6:18", + "nodeType": "YulIdentifier", + "src": "21403:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "20403:1089:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20484:9:18", + "nodeType": "YulTypedName", + "src": "20484:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "20495:7:18", + "nodeType": "YulTypedName", + "src": "20495:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "20507:6:18", + "nodeType": "YulTypedName", + "src": "20507:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20515:6:18", + "nodeType": "YulTypedName", + "src": "20515:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20523:6:18", + "nodeType": "YulTypedName", + "src": "20523:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20531:6:18", + "nodeType": "YulTypedName", + "src": "20531:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "20539:6:18", + "nodeType": "YulTypedName", + "src": "20539:6:18", + "type": "" + } + ], + "src": "20403:1089:18" + }, + { + "body": { + "nativeSrc": "21598:519:18", + "nodeType": "YulBlock", + "src": "21598:519:18", + "statements": [ + { + "body": { + "nativeSrc": "21644:83:18", + "nodeType": "YulBlock", + "src": "21644:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "21646:77:18", + "nodeType": "YulIdentifier", + "src": "21646:77:18" + }, + "nativeSrc": "21646:79:18", + "nodeType": "YulFunctionCall", + "src": "21646:79:18" + }, + "nativeSrc": "21646:79:18", + "nodeType": "YulExpressionStatement", + "src": "21646:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "21619:7:18", + "nodeType": "YulIdentifier", + "src": "21619:7:18" + }, + { + "name": "headStart", + "nativeSrc": "21628:9:18", + "nodeType": "YulIdentifier", + "src": "21628:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21615:3:18", + "nodeType": "YulIdentifier", + "src": "21615:3:18" + }, + "nativeSrc": "21615:23:18", + "nodeType": "YulFunctionCall", + "src": "21615:23:18" + }, + { + "kind": "number", + "nativeSrc": "21640:2:18", + "nodeType": "YulLiteral", + "src": "21640:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "21611:3:18", + "nodeType": "YulIdentifier", + "src": "21611:3:18" + }, + "nativeSrc": "21611:32:18", + "nodeType": "YulFunctionCall", + "src": "21611:32:18" + }, + "nativeSrc": "21608:119:18", + "nodeType": "YulIf", + "src": "21608:119:18" + }, + { + "nativeSrc": "21737:117:18", + "nodeType": "YulBlock", + "src": "21737:117:18", + "statements": [ + { + "nativeSrc": "21752:15:18", + "nodeType": "YulVariableDeclaration", + "src": "21752:15:18", + "value": { + "kind": "number", + "nativeSrc": "21766:1:18", + "nodeType": "YulLiteral", + "src": "21766:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21756:6:18", + "nodeType": "YulTypedName", + "src": "21756:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21781:63:18", + "nodeType": "YulAssignment", + "src": "21781:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21816:9:18", + "nodeType": "YulIdentifier", + "src": "21816:9:18" + }, + { + "name": "offset", + "nativeSrc": "21827:6:18", + "nodeType": "YulIdentifier", + "src": "21827:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21812:3:18", + "nodeType": "YulIdentifier", + "src": "21812:3:18" + }, + "nativeSrc": "21812:22:18", + "nodeType": "YulFunctionCall", + "src": "21812:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21836:7:18", + "nodeType": "YulIdentifier", + "src": "21836:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "21791:20:18", + "nodeType": "YulIdentifier", + "src": "21791:20:18" + }, + "nativeSrc": "21791:53:18", + "nodeType": "YulFunctionCall", + "src": "21791:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "21781:6:18", + "nodeType": "YulIdentifier", + "src": "21781:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21864:118:18", + "nodeType": "YulBlock", + "src": "21864:118:18", + "statements": [ + { + "nativeSrc": "21879:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21879:16:18", + "value": { + "kind": "number", + "nativeSrc": "21893:2:18", + "nodeType": "YulLiteral", + "src": "21893:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21883:6:18", + "nodeType": "YulTypedName", + "src": "21883:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21909:63:18", + "nodeType": "YulAssignment", + "src": "21909:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21944:9:18", + "nodeType": "YulIdentifier", + "src": "21944:9:18" + }, + { + "name": "offset", + "nativeSrc": "21955:6:18", + "nodeType": "YulIdentifier", + "src": "21955:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21940:3:18", + "nodeType": "YulIdentifier", + "src": "21940:3:18" + }, + "nativeSrc": "21940:22:18", + "nodeType": "YulFunctionCall", + "src": "21940:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21964:7:18", + "nodeType": "YulIdentifier", + "src": "21964:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21919:20:18", + "nodeType": "YulIdentifier", + "src": "21919:20:18" + }, + "nativeSrc": "21919:53:18", + "nodeType": "YulFunctionCall", + "src": "21919:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "21909:6:18", + "nodeType": "YulIdentifier", + "src": "21909:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21992:118:18", + "nodeType": "YulBlock", + "src": "21992:118:18", + "statements": [ + { + "nativeSrc": "22007:16:18", + "nodeType": "YulVariableDeclaration", + "src": "22007:16:18", + "value": { + "kind": "number", + "nativeSrc": "22021:2:18", + "nodeType": "YulLiteral", + "src": "22021:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22011:6:18", + "nodeType": "YulTypedName", + "src": "22011:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "22037:63:18", + "nodeType": "YulAssignment", + "src": "22037:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22072:9:18", + "nodeType": "YulIdentifier", + "src": "22072:9:18" + }, + { + "name": "offset", + "nativeSrc": "22083:6:18", + "nodeType": "YulIdentifier", + "src": "22083:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22068:3:18", + "nodeType": "YulIdentifier", + "src": "22068:3:18" + }, + "nativeSrc": "22068:22:18", + "nodeType": "YulFunctionCall", + "src": "22068:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "22092:7:18", + "nodeType": "YulIdentifier", + "src": "22092:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "22047:20:18", + "nodeType": "YulIdentifier", + "src": "22047:20:18" + }, + "nativeSrc": "22047:53:18", + "nodeType": "YulFunctionCall", + "src": "22047:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "22037:6:18", + "nodeType": "YulIdentifier", + "src": "22037:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nativeSrc": "21498:619:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21552:9:18", + "nodeType": "YulTypedName", + "src": "21552:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "21563:7:18", + "nodeType": "YulTypedName", + "src": "21563:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "21575:6:18", + "nodeType": "YulTypedName", + "src": "21575:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21583:6:18", + "nodeType": "YulTypedName", + "src": "21583:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21591:6:18", + "nodeType": "YulTypedName", + "src": "21591:6:18", + "type": "" + } + ], + "src": "21498:619:18" + }, + { + "body": { + "nativeSrc": "22151:152:18", + "nodeType": "YulBlock", + "src": "22151:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22168:1:18", + "nodeType": "YulLiteral", + "src": "22168:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22171:77:18", + "nodeType": "YulLiteral", + "src": "22171:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22161:6:18", + "nodeType": "YulIdentifier", + "src": "22161:6:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulFunctionCall", + "src": "22161:88:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulExpressionStatement", + "src": "22161:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22265:1:18", + "nodeType": "YulLiteral", + "src": "22265:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22268:4:18", + "nodeType": "YulLiteral", + "src": "22268:4:18", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22258:6:18", + "nodeType": "YulIdentifier", + "src": "22258:6:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulFunctionCall", + "src": "22258:15:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulExpressionStatement", + "src": "22258:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22289:1:18", + "nodeType": "YulLiteral", + "src": "22289:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22292:4:18", + "nodeType": "YulLiteral", + "src": "22292:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22282:6:18", + "nodeType": "YulIdentifier", + "src": "22282:6:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulFunctionCall", + "src": "22282:15:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulExpressionStatement", + "src": "22282:15:18" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "22123:180:18", + "nodeType": "YulFunctionDefinition", + "src": "22123:180:18" + }, + { + "body": { + "nativeSrc": "22360:269:18", + "nodeType": "YulBlock", + "src": "22360:269:18", + "statements": [ + { + "nativeSrc": "22370:22:18", + "nodeType": "YulAssignment", + "src": "22370:22:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22384:4:18", + "nodeType": "YulIdentifier", + "src": "22384:4:18" + }, + { + "kind": "number", + "nativeSrc": "22390:1:18", + "nodeType": "YulLiteral", + "src": "22390:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "22380:3:18", + "nodeType": "YulIdentifier", + "src": "22380:3:18" + }, + "nativeSrc": "22380:12:18", + "nodeType": "YulFunctionCall", + "src": "22380:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22370:6:18", + "nodeType": "YulIdentifier", + "src": "22370:6:18" + } + ] + }, + { + "nativeSrc": "22401:38:18", + "nodeType": "YulVariableDeclaration", + "src": "22401:38:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22431:4:18", + "nodeType": "YulIdentifier", + "src": "22431:4:18" + }, + { + "kind": "number", + "nativeSrc": "22437:1:18", + "nodeType": "YulLiteral", + "src": "22437:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22427:3:18", + "nodeType": "YulIdentifier", + "src": "22427:3:18" + }, + "nativeSrc": "22427:12:18", + "nodeType": "YulFunctionCall", + "src": "22427:12:18" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22405:18:18", + "nodeType": "YulTypedName", + "src": "22405:18:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22478:51:18", + "nodeType": "YulBlock", + "src": "22478:51:18", + "statements": [ + { + "nativeSrc": "22492:27:18", + "nodeType": "YulAssignment", + "src": "22492:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "22506:6:18", + "nodeType": "YulIdentifier", + "src": "22506:6:18" + }, + { + "kind": "number", + "nativeSrc": "22514:4:18", + "nodeType": "YulLiteral", + "src": "22514:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22502:3:18", + "nodeType": "YulIdentifier", + "src": "22502:3:18" + }, + "nativeSrc": "22502:17:18", + "nodeType": "YulFunctionCall", + "src": "22502:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22492:6:18", + "nodeType": "YulIdentifier", + "src": "22492:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22458:18:18", + "nodeType": "YulIdentifier", + "src": "22458:18:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22451:6:18", + "nodeType": "YulIdentifier", + "src": "22451:6:18" + }, + "nativeSrc": "22451:26:18", + "nodeType": "YulFunctionCall", + "src": "22451:26:18" + }, + "nativeSrc": "22448:81:18", + "nodeType": "YulIf", + "src": "22448:81:18" + }, + { + "body": { + "nativeSrc": "22581:42:18", + "nodeType": "YulBlock", + "src": "22581:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "22595:16:18", + "nodeType": "YulIdentifier", + "src": "22595:16:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulFunctionCall", + "src": "22595:18:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulExpressionStatement", + "src": "22595:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22545:18:18", + "nodeType": "YulIdentifier", + "src": "22545:18:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "22568:6:18", + "nodeType": "YulIdentifier", + "src": "22568:6:18" + }, + { + "kind": "number", + "nativeSrc": "22576:2:18", + "nodeType": "YulLiteral", + "src": "22576:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22565:2:18", + "nodeType": "YulIdentifier", + "src": "22565:2:18" + }, + "nativeSrc": "22565:14:18", + "nodeType": "YulFunctionCall", + "src": "22565:14:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "22542:2:18", + "nodeType": "YulIdentifier", + "src": "22542:2:18" + }, + "nativeSrc": "22542:38:18", + "nodeType": "YulFunctionCall", + "src": "22542:38:18" + }, + "nativeSrc": "22539:84:18", + "nodeType": "YulIf", + "src": "22539:84:18" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "22309:320:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "22344:4:18", + "nodeType": "YulTypedName", + "src": "22344:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "22353:6:18", + "nodeType": "YulTypedName", + "src": "22353:6:18", + "type": "" + } + ], + "src": "22309:320:18" + }, + { + "body": { + "nativeSrc": "22700:53:18", + "nodeType": "YulBlock", + "src": "22700:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22717:3:18", + "nodeType": "YulIdentifier", + "src": "22717:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "22740:5:18", + "nodeType": "YulIdentifier", + "src": "22740:5:18" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "22722:17:18", + "nodeType": "YulIdentifier", + "src": "22722:17:18" + }, + "nativeSrc": "22722:24:18", + "nodeType": "YulFunctionCall", + "src": "22722:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22710:6:18", + "nodeType": "YulIdentifier", + "src": "22710:6:18" + }, + "nativeSrc": "22710:37:18", + "nodeType": "YulFunctionCall", + "src": "22710:37:18" + }, + "nativeSrc": "22710:37:18", + "nodeType": "YulExpressionStatement", + "src": "22710:37:18" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "22635:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "22688:5:18", + "nodeType": "YulTypedName", + "src": "22688:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "22695:3:18", + "nodeType": "YulTypedName", + "src": "22695:3:18", + "type": "" + } + ], + "src": "22635:118:18" + }, + { + "body": { + "nativeSrc": "22885:206:18", + "nodeType": "YulBlock", + "src": "22885:206:18", + "statements": [ + { + "nativeSrc": "22895:26:18", + "nodeType": "YulAssignment", + "src": "22895:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22907:9:18", + "nodeType": "YulIdentifier", + "src": "22907:9:18" + }, + { + "kind": "number", + "nativeSrc": "22918:2:18", + "nodeType": "YulLiteral", + "src": "22918:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22903:3:18", + "nodeType": "YulIdentifier", + "src": "22903:3:18" + }, + "nativeSrc": "22903:18:18", + "nodeType": "YulFunctionCall", + "src": "22903:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22895:4:18", + "nodeType": "YulIdentifier", + "src": "22895:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22975:6:18", + "nodeType": "YulIdentifier", + "src": "22975:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22988:9:18", + "nodeType": "YulIdentifier", + "src": "22988:9:18" + }, + { + "kind": "number", + "nativeSrc": "22999:1:18", + "nodeType": "YulLiteral", + "src": "22999:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22984:3:18", + "nodeType": "YulIdentifier", + "src": "22984:3:18" + }, + "nativeSrc": "22984:17:18", + "nodeType": "YulFunctionCall", + "src": "22984:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "22931:43:18", + "nodeType": "YulIdentifier", + "src": "22931:43:18" + }, + "nativeSrc": "22931:71:18", + "nodeType": "YulFunctionCall", + "src": "22931:71:18" + }, + "nativeSrc": "22931:71:18", + "nodeType": "YulExpressionStatement", + "src": "22931:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "23056:6:18", + "nodeType": "YulIdentifier", + "src": "23056:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23069:9:18", + "nodeType": "YulIdentifier", + "src": "23069:9:18" + }, + { + "kind": "number", + "nativeSrc": "23080:2:18", + "nodeType": "YulLiteral", + "src": "23080:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23065:3:18", + "nodeType": "YulIdentifier", + "src": "23065:3:18" + }, + "nativeSrc": "23065:18:18", + "nodeType": "YulFunctionCall", + "src": "23065:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "23012:43:18", + "nodeType": "YulIdentifier", + "src": "23012:43:18" + }, + "nativeSrc": "23012:72:18", + "nodeType": "YulFunctionCall", + "src": "23012:72:18" + }, + "nativeSrc": "23012:72:18", + "nodeType": "YulExpressionStatement", + "src": "23012:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "22759:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22849:9:18", + "nodeType": "YulTypedName", + "src": "22849:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22861:6:18", + "nodeType": "YulTypedName", + "src": "22861:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22869:6:18", + "nodeType": "YulTypedName", + "src": "22869:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22880:4:18", + "nodeType": "YulTypedName", + "src": "22880:4:18", + "type": "" + } + ], + "src": "22759:332:18" + }, + { + "body": { + "nativeSrc": "23223:206:18", + "nodeType": "YulBlock", + "src": "23223:206:18", + "statements": [ + { + "nativeSrc": "23233:26:18", + "nodeType": "YulAssignment", + "src": "23233:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23245:9:18", + "nodeType": "YulIdentifier", + "src": "23245:9:18" + }, + { + "kind": "number", + "nativeSrc": "23256:2:18", + "nodeType": "YulLiteral", + "src": "23256:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23241:3:18", + "nodeType": "YulIdentifier", + "src": "23241:3:18" + }, + "nativeSrc": "23241:18:18", + "nodeType": "YulFunctionCall", + "src": "23241:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23233:4:18", + "nodeType": "YulIdentifier", + "src": "23233:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23313:6:18", + "nodeType": "YulIdentifier", + "src": "23313:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23326:9:18", + "nodeType": "YulIdentifier", + "src": "23326:9:18" + }, + { + "kind": "number", + "nativeSrc": "23337:1:18", + "nodeType": "YulLiteral", + "src": "23337:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23322:3:18", + "nodeType": "YulIdentifier", + "src": "23322:3:18" + }, + "nativeSrc": "23322:17:18", + "nodeType": "YulFunctionCall", + "src": "23322:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "23269:43:18", + "nodeType": "YulIdentifier", + "src": "23269:43:18" + }, + "nativeSrc": "23269:71:18", + "nodeType": "YulFunctionCall", + "src": "23269:71:18" + }, + "nativeSrc": "23269:71:18", + "nodeType": "YulExpressionStatement", + "src": "23269:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "23394:6:18", + "nodeType": "YulIdentifier", + "src": "23394:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23407:9:18", + "nodeType": "YulIdentifier", + "src": "23407:9:18" + }, + { + "kind": "number", + "nativeSrc": "23418:2:18", + "nodeType": "YulLiteral", + "src": "23418:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23403:3:18", + "nodeType": "YulIdentifier", + "src": "23403:3:18" + }, + "nativeSrc": "23403:18:18", + "nodeType": "YulFunctionCall", + "src": "23403:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "23350:43:18", + "nodeType": "YulIdentifier", + "src": "23350:43:18" + }, + "nativeSrc": "23350:72:18", + "nodeType": "YulFunctionCall", + "src": "23350:72:18" + }, + "nativeSrc": "23350:72:18", + "nodeType": "YulExpressionStatement", + "src": "23350:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "23097:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23187:9:18", + "nodeType": "YulTypedName", + "src": "23187:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23199:6:18", + "nodeType": "YulTypedName", + "src": "23199:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23207:6:18", + "nodeType": "YulTypedName", + "src": "23207:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23218:4:18", + "nodeType": "YulTypedName", + "src": "23218:4:18", + "type": "" + } + ], + "src": "23097:332:18" + }, + { + "body": { + "nativeSrc": "23463:152:18", + "nodeType": "YulBlock", + "src": "23463:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23480:1:18", + "nodeType": "YulLiteral", + "src": "23480:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23483:77:18", + "nodeType": "YulLiteral", + "src": "23483:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23473:6:18", + "nodeType": "YulIdentifier", + "src": "23473:6:18" + }, + "nativeSrc": "23473:88:18", + "nodeType": "YulFunctionCall", + "src": "23473:88:18" + }, + "nativeSrc": "23473:88:18", + "nodeType": "YulExpressionStatement", + "src": "23473:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23577:1:18", + "nodeType": "YulLiteral", + "src": "23577:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "23580:4:18", + "nodeType": "YulLiteral", + "src": "23580:4:18", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23570:6:18", + "nodeType": "YulIdentifier", + "src": "23570:6:18" + }, + "nativeSrc": "23570:15:18", + "nodeType": "YulFunctionCall", + "src": "23570:15:18" + }, + "nativeSrc": "23570:15:18", + "nodeType": "YulExpressionStatement", + "src": "23570:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23601:1:18", + "nodeType": "YulLiteral", + "src": "23601:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23604:4:18", + "nodeType": "YulLiteral", + "src": "23604:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23594:6:18", + "nodeType": "YulIdentifier", + "src": "23594:6:18" + }, + "nativeSrc": "23594:15:18", + "nodeType": "YulFunctionCall", + "src": "23594:15:18" + }, + "nativeSrc": "23594:15:18", + "nodeType": "YulExpressionStatement", + "src": "23594:15:18" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "23435:180:18", + "nodeType": "YulFunctionDefinition", + "src": "23435:180:18" + }, + { + "body": { + "nativeSrc": "23747:206:18", + "nodeType": "YulBlock", + "src": "23747:206:18", + "statements": [ + { + "nativeSrc": "23757:26:18", + "nodeType": "YulAssignment", + "src": "23757:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23769:9:18", + "nodeType": "YulIdentifier", + "src": "23769:9:18" + }, + { + "kind": "number", + "nativeSrc": "23780:2:18", + "nodeType": "YulLiteral", + "src": "23780:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23765:3:18", + "nodeType": "YulIdentifier", + "src": "23765:3:18" + }, + "nativeSrc": "23765:18:18", + "nodeType": "YulFunctionCall", + "src": "23765:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23757:4:18", + "nodeType": "YulIdentifier", + "src": "23757:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23837:6:18", + "nodeType": "YulIdentifier", + "src": "23837:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23850:9:18", + "nodeType": "YulIdentifier", + "src": "23850:9:18" + }, + { + "kind": "number", + "nativeSrc": "23861:1:18", + "nodeType": "YulLiteral", + "src": "23861:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23846:3:18", + "nodeType": "YulIdentifier", + "src": "23846:3:18" + }, + "nativeSrc": "23846:17:18", + "nodeType": "YulFunctionCall", + "src": "23846:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "23793:43:18", + "nodeType": "YulIdentifier", + "src": "23793:43:18" + }, + "nativeSrc": "23793:71:18", + "nodeType": "YulFunctionCall", + "src": "23793:71:18" + }, + "nativeSrc": "23793:71:18", + "nodeType": "YulExpressionStatement", + "src": "23793:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "23918:6:18", + "nodeType": "YulIdentifier", + "src": "23918:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23931:9:18", + "nodeType": "YulIdentifier", + "src": "23931:9:18" + }, + { + "kind": "number", + "nativeSrc": "23942:2:18", + "nodeType": "YulLiteral", + "src": "23942:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23927:3:18", + "nodeType": "YulIdentifier", + "src": "23927:3:18" + }, + "nativeSrc": "23927:18:18", + "nodeType": "YulFunctionCall", + "src": "23927:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "23874:43:18", + "nodeType": "YulIdentifier", + "src": "23874:43:18" + }, + "nativeSrc": "23874:72:18", + "nodeType": "YulFunctionCall", + "src": "23874:72:18" + }, + "nativeSrc": "23874:72:18", + "nodeType": "YulExpressionStatement", + "src": "23874:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "23621:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23711:9:18", + "nodeType": "YulTypedName", + "src": "23711:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23723:6:18", + "nodeType": "YulTypedName", + "src": "23723:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23731:6:18", + "nodeType": "YulTypedName", + "src": "23731:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23742:4:18", + "nodeType": "YulTypedName", + "src": "23742:4:18", + "type": "" + } + ], + "src": "23621:332:18" + }, + { + "body": { + "nativeSrc": "24012:32:18", + "nodeType": "YulBlock", + "src": "24012:32:18", + "statements": [ + { + "nativeSrc": "24022:16:18", + "nodeType": "YulAssignment", + "src": "24022:16:18", + "value": { + "name": "value", + "nativeSrc": "24033:5:18", + "nodeType": "YulIdentifier", + "src": "24033:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "24022:7:18", + "nodeType": "YulIdentifier", + "src": "24022:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "23959:85:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23994:5:18", + "nodeType": "YulTypedName", + "src": "23994:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "24004:7:18", + "nodeType": "YulTypedName", + "src": "24004:7:18", + "type": "" + } + ], + "src": "23959:85:18" + }, + { + "body": { + "nativeSrc": "24082:28:18", + "nodeType": "YulBlock", + "src": "24082:28:18", + "statements": [ + { + "nativeSrc": "24092:12:18", + "nodeType": "YulAssignment", + "src": "24092:12:18", + "value": { + "name": "value", + "nativeSrc": "24099:5:18", + "nodeType": "YulIdentifier", + "src": "24099:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24092:3:18", + "nodeType": "YulIdentifier", + "src": "24092:3:18" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "24050:60:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24068:5:18", + "nodeType": "YulTypedName", + "src": "24068:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24078:3:18", + "nodeType": "YulTypedName", + "src": "24078:3:18", + "type": "" + } + ], + "src": "24050:60:18" + }, + { + "body": { + "nativeSrc": "24184:90:18", + "nodeType": "YulBlock", + "src": "24184:90:18", + "statements": [ + { + "nativeSrc": "24194:74:18", + "nodeType": "YulAssignment", + "src": "24194:74:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24260:5:18", + "nodeType": "YulIdentifier", + "src": "24260:5:18" + } + ], + "functionName": { + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "24234:25:18", + "nodeType": "YulIdentifier", + "src": "24234:25:18" + }, + "nativeSrc": "24234:32:18", + "nodeType": "YulFunctionCall", + "src": "24234:32:18" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "24225:8:18", + "nodeType": "YulIdentifier", + "src": "24225:8:18" + }, + "nativeSrc": "24225:42:18", + "nodeType": "YulFunctionCall", + "src": "24225:42:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24207:17:18", + "nodeType": "YulIdentifier", + "src": "24207:17:18" + }, + "nativeSrc": "24207:61:18", + "nodeType": "YulFunctionCall", + "src": "24207:61:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "24194:9:18", + "nodeType": "YulIdentifier", + "src": "24194:9:18" + } + ] + } + ] + }, + "name": "convert_t_rational_1_by_1_to_t_uint256", + "nativeSrc": "24116:158:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24164:5:18", + "nodeType": "YulTypedName", + "src": "24164:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "24174:9:18", + "nodeType": "YulTypedName", + "src": "24174:9:18", + "type": "" + } + ], + "src": "24116:158:18" + }, + { + "body": { + "nativeSrc": "24353:74:18", + "nodeType": "YulBlock", + "src": "24353:74:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24370:3:18", + "nodeType": "YulIdentifier", + "src": "24370:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24414:5:18", + "nodeType": "YulIdentifier", + "src": "24414:5:18" + } + ], + "functionName": { + "name": "convert_t_rational_1_by_1_to_t_uint256", + "nativeSrc": "24375:38:18", + "nodeType": "YulIdentifier", + "src": "24375:38:18" + }, + "nativeSrc": "24375:45:18", + "nodeType": "YulFunctionCall", + "src": "24375:45:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24363:6:18", + "nodeType": "YulIdentifier", + "src": "24363:6:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulFunctionCall", + "src": "24363:58:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulExpressionStatement", + "src": "24363:58:18" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24280:147:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24341:5:18", + "nodeType": "YulTypedName", + "src": "24341:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24348:3:18", + "nodeType": "YulTypedName", + "src": "24348:3:18", + "type": "" + } + ], + "src": "24280:147:18" + }, + { + "body": { + "nativeSrc": "24539:132:18", + "nodeType": "YulBlock", + "src": "24539:132:18", + "statements": [ + { + "nativeSrc": "24549:26:18", + "nodeType": "YulAssignment", + "src": "24549:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24561:9:18", + "nodeType": "YulIdentifier", + "src": "24561:9:18" + }, + { + "kind": "number", + "nativeSrc": "24572:2:18", + "nodeType": "YulLiteral", + "src": "24572:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24557:3:18", + "nodeType": "YulIdentifier", + "src": "24557:3:18" + }, + "nativeSrc": "24557:18:18", + "nodeType": "YulFunctionCall", + "src": "24557:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24549:4:18", + "nodeType": "YulIdentifier", + "src": "24549:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24637:6:18", + "nodeType": "YulIdentifier", + "src": "24637:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24650:9:18", + "nodeType": "YulIdentifier", + "src": "24650:9:18" + }, + { + "kind": "number", + "nativeSrc": "24661:1:18", + "nodeType": "YulLiteral", + "src": "24661:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24646:3:18", + "nodeType": "YulIdentifier", + "src": "24646:3:18" + }, + "nativeSrc": "24646:17:18", + "nodeType": "YulFunctionCall", + "src": "24646:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24585:51:18", + "nodeType": "YulIdentifier", + "src": "24585:51:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulFunctionCall", + "src": "24585:79:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulExpressionStatement", + "src": "24585:79:18" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed", + "nativeSrc": "24433:238:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24511:9:18", + "nodeType": "YulTypedName", + "src": "24511:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24523:6:18", + "nodeType": "YulTypedName", + "src": "24523:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24534:4:18", + "nodeType": "YulTypedName", + "src": "24534:4:18", + "type": "" + } + ], + "src": "24433:238:18" + }, + { + "body": { + "nativeSrc": "24791:34:18", + "nodeType": "YulBlock", + "src": "24791:34:18", + "statements": [ + { + "nativeSrc": "24801:18:18", + "nodeType": "YulAssignment", + "src": "24801:18:18", + "value": { + "name": "pos", + "nativeSrc": "24816:3:18", + "nodeType": "YulIdentifier", + "src": "24816:3:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "24801:11:18", + "nodeType": "YulIdentifier", + "src": "24801:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "24677:148:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "24763:3:18", + "nodeType": "YulTypedName", + "src": "24763:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "24768:6:18", + "nodeType": "YulTypedName", + "src": "24768:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "24779:11:18", + "nodeType": "YulTypedName", + "src": "24779:11:18", + "type": "" + } + ], + "src": "24677:148:18" + }, + { + "body": { + "nativeSrc": "24885:87:18", + "nodeType": "YulBlock", + "src": "24885:87:18", + "statements": [ + { + "nativeSrc": "24895:11:18", + "nodeType": "YulAssignment", + "src": "24895:11:18", + "value": { + "name": "ptr", + "nativeSrc": "24903:3:18", + "nodeType": "YulIdentifier", + "src": "24903:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "24895:4:18", + "nodeType": "YulIdentifier", + "src": "24895:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24923:1:18", + "nodeType": "YulLiteral", + "src": "24923:1:18", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "24926:3:18", + "nodeType": "YulIdentifier", + "src": "24926:3:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24916:6:18", + "nodeType": "YulIdentifier", + "src": "24916:6:18" + }, + "nativeSrc": "24916:14:18", + "nodeType": "YulFunctionCall", + "src": "24916:14:18" + }, + "nativeSrc": "24916:14:18", + "nodeType": "YulExpressionStatement", + "src": "24916:14:18" + }, + { + "nativeSrc": "24939:26:18", + "nodeType": "YulAssignment", + "src": "24939:26:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24957:1:18", + "nodeType": "YulLiteral", + "src": "24957:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24960:4:18", + "nodeType": "YulLiteral", + "src": "24960:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "24947:9:18", + "nodeType": "YulIdentifier", + "src": "24947:9:18" + }, + "nativeSrc": "24947:18:18", + "nodeType": "YulFunctionCall", + "src": "24947:18:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "24939:4:18", + "nodeType": "YulIdentifier", + "src": "24939:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "24831:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "24872:3:18", + "nodeType": "YulTypedName", + "src": "24872:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "24880:4:18", + "nodeType": "YulTypedName", + "src": "24880:4:18", + "type": "" + } + ], + "src": "24831:141:18" + }, + { + "body": { + "nativeSrc": "25109:767:18", + "nodeType": "YulBlock", + "src": "25109:767:18", + "statements": [ + { + "nativeSrc": "25119:29:18", + "nodeType": "YulVariableDeclaration", + "src": "25119:29:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25142:5:18", + "nodeType": "YulIdentifier", + "src": "25142:5:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "25136:5:18", + "nodeType": "YulIdentifier", + "src": "25136:5:18" + }, + "nativeSrc": "25136:12:18", + "nodeType": "YulFunctionCall", + "src": "25136:12:18" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "25123:9:18", + "nodeType": "YulTypedName", + "src": "25123:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "25157:50:18", + "nodeType": "YulVariableDeclaration", + "src": "25157:50:18", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "25197:9:18", + "nodeType": "YulIdentifier", + "src": "25197:9:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "25171:25:18", + "nodeType": "YulIdentifier", + "src": "25171:25:18" + }, + "nativeSrc": "25171:36:18", + "nodeType": "YulFunctionCall", + "src": "25171:36:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "25161:6:18", + "nodeType": "YulTypedName", + "src": "25161:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "25216:96:18", + "nodeType": "YulAssignment", + "src": "25216:96:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25300:3:18", + "nodeType": "YulIdentifier", + "src": "25300:3:18" + }, + { + "name": "length", + "nativeSrc": "25305:6:18", + "nodeType": "YulIdentifier", + "src": "25305:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25223:76:18", + "nodeType": "YulIdentifier", + "src": "25223:76:18" + }, + "nativeSrc": "25223:89:18", + "nodeType": "YulFunctionCall", + "src": "25223:89:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25216:3:18", + "nodeType": "YulIdentifier", + "src": "25216:3:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "25361:159:18", + "nodeType": "YulBlock", + "src": "25361:159:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25414:3:18", + "nodeType": "YulIdentifier", + "src": "25414:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "25423:9:18", + "nodeType": "YulIdentifier", + "src": "25423:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25438:4:18", + "nodeType": "YulLiteral", + "src": "25438:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "25434:3:18", + "nodeType": "YulIdentifier", + "src": "25434:3:18" + }, + "nativeSrc": "25434:9:18", + "nodeType": "YulFunctionCall", + "src": "25434:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25419:3:18", + "nodeType": "YulIdentifier", + "src": "25419:3:18" + }, + "nativeSrc": "25419:25:18", + "nodeType": "YulFunctionCall", + "src": "25419:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25407:6:18", + "nodeType": "YulIdentifier", + "src": "25407:6:18" + }, + "nativeSrc": "25407:38:18", + "nodeType": "YulFunctionCall", + "src": "25407:38:18" + }, + "nativeSrc": "25407:38:18", + "nodeType": "YulExpressionStatement", + "src": "25407:38:18" + }, + { + "nativeSrc": "25458:52:18", + "nodeType": "YulAssignment", + "src": "25458:52:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25469:3:18", + "nodeType": "YulIdentifier", + "src": "25469:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "25478:6:18", + "nodeType": "YulIdentifier", + "src": "25478:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "25500:6:18", + "nodeType": "YulIdentifier", + "src": "25500:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "25493:6:18", + "nodeType": "YulIdentifier", + "src": "25493:6:18" + }, + "nativeSrc": "25493:14:18", + "nodeType": "YulFunctionCall", + "src": "25493:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "25486:6:18", + "nodeType": "YulIdentifier", + "src": "25486:6:18" + }, + "nativeSrc": "25486:22:18", + "nodeType": "YulFunctionCall", + "src": "25486:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "25474:3:18", + "nodeType": "YulIdentifier", + "src": "25474:3:18" + }, + "nativeSrc": "25474:35:18", + "nodeType": "YulFunctionCall", + "src": "25474:35:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25465:3:18", + "nodeType": "YulIdentifier", + "src": "25465:3:18" + }, + "nativeSrc": "25465:45:18", + "nodeType": "YulFunctionCall", + "src": "25465:45:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "25458:3:18", + "nodeType": "YulIdentifier", + "src": "25458:3:18" + } + ] + } + ] + }, + "nativeSrc": "25354:166:18", + "nodeType": "YulCase", + "src": "25354:166:18", + "value": { + "kind": "number", + "nativeSrc": "25359:1:18", + "nodeType": "YulLiteral", + "src": "25359:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "25536:334:18", + "nodeType": "YulBlock", + "src": "25536:334:18", + "statements": [ + { + "nativeSrc": "25581:53:18", + "nodeType": "YulVariableDeclaration", + "src": "25581:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25628:5:18", + "nodeType": "YulIdentifier", + "src": "25628:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "25596:31:18", + "nodeType": "YulIdentifier", + "src": "25596:31:18" + }, + "nativeSrc": "25596:38:18", + "nodeType": "YulFunctionCall", + "src": "25596:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "25585:7:18", + "nodeType": "YulTypedName", + "src": "25585:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "25647:10:18", + "nodeType": "YulVariableDeclaration", + "src": "25647:10:18", + "value": { + "kind": "number", + "nativeSrc": "25656:1:18", + "nodeType": "YulLiteral", + "src": "25656:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "25651:1:18", + "nodeType": "YulTypedName", + "src": "25651:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "25714:110:18", + "nodeType": "YulBlock", + "src": "25714:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25743:3:18", + "nodeType": "YulIdentifier", + "src": "25743:3:18" + }, + { + "name": "i", + "nativeSrc": "25748:1:18", + "nodeType": "YulIdentifier", + "src": "25748:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25739:3:18", + "nodeType": "YulIdentifier", + "src": "25739:3:18" + }, + "nativeSrc": "25739:11:18", + "nodeType": "YulFunctionCall", + "src": "25739:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "25758:7:18", + "nodeType": "YulIdentifier", + "src": "25758:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "25752:5:18", + "nodeType": "YulIdentifier", + "src": "25752:5:18" + }, + "nativeSrc": "25752:14:18", + "nodeType": "YulFunctionCall", + "src": "25752:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25732:6:18", + "nodeType": "YulIdentifier", + "src": "25732:6:18" + }, + "nativeSrc": "25732:35:18", + "nodeType": "YulFunctionCall", + "src": "25732:35:18" + }, + "nativeSrc": "25732:35:18", + "nodeType": "YulExpressionStatement", + "src": "25732:35:18" + }, + { + "nativeSrc": "25784:26:18", + "nodeType": "YulAssignment", + "src": "25784:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "25799:7:18", + "nodeType": "YulIdentifier", + "src": "25799:7:18" + }, + { + "kind": "number", + "nativeSrc": "25808:1:18", + "nodeType": "YulLiteral", + "src": "25808:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25795:3:18", + "nodeType": "YulIdentifier", + "src": "25795:3:18" + }, + "nativeSrc": "25795:15:18", + "nodeType": "YulFunctionCall", + "src": "25795:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "25784:7:18", + "nodeType": "YulIdentifier", + "src": "25784:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "25681:1:18", + "nodeType": "YulIdentifier", + "src": "25681:1:18" + }, + { + "name": "length", + "nativeSrc": "25684:6:18", + "nodeType": "YulIdentifier", + "src": "25684:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "25678:2:18", + "nodeType": "YulIdentifier", + "src": "25678:2:18" + }, + "nativeSrc": "25678:13:18", + "nodeType": "YulFunctionCall", + "src": "25678:13:18" + }, + "nativeSrc": "25670:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "25692:21:18", + "nodeType": "YulBlock", + "src": "25692:21:18", + "statements": [ + { + "nativeSrc": "25694:17:18", + "nodeType": "YulAssignment", + "src": "25694:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "25703:1:18", + "nodeType": "YulIdentifier", + "src": "25703:1:18" + }, + { + "kind": "number", + "nativeSrc": "25706:4:18", + "nodeType": "YulLiteral", + "src": "25706:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25699:3:18", + "nodeType": "YulIdentifier", + "src": "25699:3:18" + }, + "nativeSrc": "25699:12:18", + "nodeType": "YulFunctionCall", + "src": "25699:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "25694:1:18", + "nodeType": "YulIdentifier", + "src": "25694:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "25674:3:18", + "nodeType": "YulBlock", + "src": "25674:3:18", + "statements": [] + }, + "src": "25670:154:18" + }, + { + "nativeSrc": "25837:23:18", + "nodeType": "YulAssignment", + "src": "25837:23:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25848:3:18", + "nodeType": "YulIdentifier", + "src": "25848:3:18" + }, + { + "name": "length", + "nativeSrc": "25853:6:18", + "nodeType": "YulIdentifier", + "src": "25853:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25844:3:18", + "nodeType": "YulIdentifier", + "src": "25844:3:18" + }, + "nativeSrc": "25844:16:18", + "nodeType": "YulFunctionCall", + "src": "25844:16:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "25837:3:18", + "nodeType": "YulIdentifier", + "src": "25837:3:18" + } + ] + } + ] + }, + "nativeSrc": "25529:341:18", + "nodeType": "YulCase", + "src": "25529:341:18", + "value": { + "kind": "number", + "nativeSrc": "25534:1:18", + "nodeType": "YulLiteral", + "src": "25534:1:18", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "25332:9:18", + "nodeType": "YulIdentifier", + "src": "25332:9:18" + }, + { + "kind": "number", + "nativeSrc": "25343:1:18", + "nodeType": "YulLiteral", + "src": "25343:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25328:3:18", + "nodeType": "YulIdentifier", + "src": "25328:3:18" + }, + "nativeSrc": "25328:17:18", + "nodeType": "YulFunctionCall", + "src": "25328:17:18" + }, + "nativeSrc": "25321:549:18", + "nodeType": "YulSwitch", + "src": "25321:549:18" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25002:874:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25090:5:18", + "nodeType": "YulTypedName", + "src": "25090:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "25097:3:18", + "nodeType": "YulTypedName", + "src": "25097:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "25105:3:18", + "nodeType": "YulTypedName", + "src": "25105:3:18", + "type": "" + } + ], + "src": "25002:874:18" + }, + { + "body": { + "nativeSrc": "25988:56:18", + "nodeType": "YulBlock", + "src": "25988:56:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26010:6:18", + "nodeType": "YulIdentifier", + "src": "26010:6:18" + }, + { + "kind": "number", + "nativeSrc": "26018:1:18", + "nodeType": "YulLiteral", + "src": "26018:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26006:3:18", + "nodeType": "YulIdentifier", + "src": "26006:3:18" + }, + "nativeSrc": "26006:14:18", + "nodeType": "YulFunctionCall", + "src": "26006:14:18" + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "kind": "string", + "nativeSrc": "26022:14:18", + "nodeType": "YulLiteral", + "src": "26022:14:18", + "type": "", + "value": "/api/v1/nft/" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25999:6:18", + "nodeType": "YulIdentifier", + "src": "25999:6:18" + }, + "nativeSrc": "25999:38:18", + "nodeType": "YulFunctionCall", + "src": "25999:38:18" + }, + "nativeSrc": "25999:38:18", + "nodeType": "YulExpressionStatement", + "src": "25999:38:18" + } + ] + }, + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "25882:162:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "25980:6:18", + "nodeType": "YulTypedName", + "src": "25980:6:18", + "type": "" + } + ], + "src": "25882:162:18" + }, + { + "body": { + "nativeSrc": "26214:238:18", + "nodeType": "YulBlock", + "src": "26214:238:18", + "statements": [ + { + "nativeSrc": "26224:92:18", + "nodeType": "YulAssignment", + "src": "26224:92:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26308:3:18", + "nodeType": "YulIdentifier", + "src": "26308:3:18" + }, + { + "kind": "number", + "nativeSrc": "26313:2:18", + "nodeType": "YulLiteral", + "src": "26313:2:18", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26231:76:18", + "nodeType": "YulIdentifier", + "src": "26231:76:18" + }, + "nativeSrc": "26231:85:18", + "nodeType": "YulFunctionCall", + "src": "26231:85:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "26224:3:18", + "nodeType": "YulIdentifier", + "src": "26224:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26414:3:18", + "nodeType": "YulIdentifier", + "src": "26414:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "26325:88:18", + "nodeType": "YulIdentifier", + "src": "26325:88:18" + }, + "nativeSrc": "26325:93:18", + "nodeType": "YulFunctionCall", + "src": "26325:93:18" + }, + "nativeSrc": "26325:93:18", + "nodeType": "YulExpressionStatement", + "src": "26325:93:18" + }, + { + "nativeSrc": "26427:19:18", + "nodeType": "YulAssignment", + "src": "26427:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26438:3:18", + "nodeType": "YulIdentifier", + "src": "26438:3:18" + }, + { + "kind": "number", + "nativeSrc": "26443:2:18", + "nodeType": "YulLiteral", + "src": "26443:2:18", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26434:3:18", + "nodeType": "YulIdentifier", + "src": "26434:3:18" + }, + "nativeSrc": "26434:12:18", + "nodeType": "YulFunctionCall", + "src": "26434:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "26427:3:18", + "nodeType": "YulIdentifier", + "src": "26427:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26050:402:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "26202:3:18", + "nodeType": "YulTypedName", + "src": "26202:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "26210:3:18", + "nodeType": "YulTypedName", + "src": "26210:3:18", + "type": "" + } + ], + "src": "26050:402:18" + }, + { + "body": { + "nativeSrc": "26568:280:18", + "nodeType": "YulBlock", + "src": "26568:280:18", + "statements": [ + { + "nativeSrc": "26578:53:18", + "nodeType": "YulVariableDeclaration", + "src": "26578:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26625:5:18", + "nodeType": "YulIdentifier", + "src": "26625:5:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "26592:32:18", + "nodeType": "YulIdentifier", + "src": "26592:32:18" + }, + "nativeSrc": "26592:39:18", + "nodeType": "YulFunctionCall", + "src": "26592:39:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "26582:6:18", + "nodeType": "YulTypedName", + "src": "26582:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26640:96:18", + "nodeType": "YulAssignment", + "src": "26640:96:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26724:3:18", + "nodeType": "YulIdentifier", + "src": "26724:3:18" + }, + { + "name": "length", + "nativeSrc": "26729:6:18", + "nodeType": "YulIdentifier", + "src": "26729:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26647:76:18", + "nodeType": "YulIdentifier", + "src": "26647:76:18" + }, + "nativeSrc": "26647:89:18", + "nodeType": "YulFunctionCall", + "src": "26647:89:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "26640:3:18", + "nodeType": "YulIdentifier", + "src": "26640:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "26784:5:18", + "nodeType": "YulIdentifier", + "src": "26784:5:18" + }, + { + "kind": "number", + "nativeSrc": "26791:4:18", + "nodeType": "YulLiteral", + "src": "26791:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26780:3:18", + "nodeType": "YulIdentifier", + "src": "26780:3:18" + }, + "nativeSrc": "26780:16:18", + "nodeType": "YulFunctionCall", + "src": "26780:16:18" + }, + { + "name": "pos", + "nativeSrc": "26798:3:18", + "nodeType": "YulIdentifier", + "src": "26798:3:18" + }, + { + "name": "length", + "nativeSrc": "26803:6:18", + "nodeType": "YulIdentifier", + "src": "26803:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "26745:34:18", + "nodeType": "YulIdentifier", + "src": "26745:34:18" + }, + "nativeSrc": "26745:65:18", + "nodeType": "YulFunctionCall", + "src": "26745:65:18" + }, + "nativeSrc": "26745:65:18", + "nodeType": "YulExpressionStatement", + "src": "26745:65:18" + }, + { + "nativeSrc": "26819:23:18", + "nodeType": "YulAssignment", + "src": "26819:23:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26830:3:18", + "nodeType": "YulIdentifier", + "src": "26830:3:18" + }, + { + "name": "length", + "nativeSrc": "26835:6:18", + "nodeType": "YulIdentifier", + "src": "26835:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26826:3:18", + "nodeType": "YulIdentifier", + "src": "26826:3:18" + }, + "nativeSrc": "26826:16:18", + "nodeType": "YulFunctionCall", + "src": "26826:16:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "26819:3:18", + "nodeType": "YulIdentifier", + "src": "26819:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26458:390:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "26549:5:18", + "nodeType": "YulTypedName", + "src": "26549:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "26556:3:18", + "nodeType": "YulTypedName", + "src": "26556:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "26564:3:18", + "nodeType": "YulTypedName", + "src": "26564:3:18", + "type": "" + } + ], + "src": "26458:390:18" + }, + { + "body": { + "nativeSrc": "26960:45:18", + "nodeType": "YulBlock", + "src": "26960:45:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26982:6:18", + "nodeType": "YulIdentifier", + "src": "26982:6:18" + }, + { + "kind": "number", + "nativeSrc": "26990:1:18", + "nodeType": "YulLiteral", + "src": "26990:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26978:3:18", + "nodeType": "YulIdentifier", + "src": "26978:3:18" + }, + "nativeSrc": "26978:14:18", + "nodeType": "YulFunctionCall", + "src": "26978:14:18" + }, + { + "hexValue": "2f", + "kind": "string", + "nativeSrc": "26994:3:18", + "nodeType": "YulLiteral", + "src": "26994:3:18", + "type": "", + "value": "/" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26971:6:18", + "nodeType": "YulIdentifier", + "src": "26971:6:18" + }, + "nativeSrc": "26971:27:18", + "nodeType": "YulFunctionCall", + "src": "26971:27:18" + }, + "nativeSrc": "26971:27:18", + "nodeType": "YulExpressionStatement", + "src": "26971:27:18" + } + ] + }, + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "26854:151:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "26952:6:18", + "nodeType": "YulTypedName", + "src": "26952:6:18", + "type": "" + } + ], + "src": "26854:151:18" + }, + { + "body": { + "nativeSrc": "27175:236:18", + "nodeType": "YulBlock", + "src": "27175:236:18", + "statements": [ + { + "nativeSrc": "27185:91:18", + "nodeType": "YulAssignment", + "src": "27185:91:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27269:3:18", + "nodeType": "YulIdentifier", + "src": "27269:3:18" + }, + { + "kind": "number", + "nativeSrc": "27274:1:18", + "nodeType": "YulLiteral", + "src": "27274:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27192:76:18", + "nodeType": "YulIdentifier", + "src": "27192:76:18" + }, + "nativeSrc": "27192:84:18", + "nodeType": "YulFunctionCall", + "src": "27192:84:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27185:3:18", + "nodeType": "YulIdentifier", + "src": "27185:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27374:3:18", + "nodeType": "YulIdentifier", + "src": "27374:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "27285:88:18", + "nodeType": "YulIdentifier", + "src": "27285:88:18" + }, + "nativeSrc": "27285:93:18", + "nodeType": "YulFunctionCall", + "src": "27285:93:18" + }, + "nativeSrc": "27285:93:18", + "nodeType": "YulExpressionStatement", + "src": "27285:93:18" + }, + { + "nativeSrc": "27387:18:18", + "nodeType": "YulAssignment", + "src": "27387:18:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27398:3:18", + "nodeType": "YulIdentifier", + "src": "27398:3:18" + }, + { + "kind": "number", + "nativeSrc": "27403:1:18", + "nodeType": "YulLiteral", + "src": "27403:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27394:3:18", + "nodeType": "YulIdentifier", + "src": "27394:3:18" + }, + "nativeSrc": "27394:11:18", + "nodeType": "YulFunctionCall", + "src": "27394:11:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27387:3:18", + "nodeType": "YulIdentifier", + "src": "27387:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27011:400:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27163:3:18", + "nodeType": "YulTypedName", + "src": "27163:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27171:3:18", + "nodeType": "YulTypedName", + "src": "27171:3:18", + "type": "" + } + ], + "src": "27011:400:18" + }, + { + "body": { + "nativeSrc": "27523:61:18", + "nodeType": "YulBlock", + "src": "27523:61:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "27545:6:18", + "nodeType": "YulIdentifier", + "src": "27545:6:18" + }, + { + "kind": "number", + "nativeSrc": "27553:1:18", + "nodeType": "YulLiteral", + "src": "27553:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27541:3:18", + "nodeType": "YulIdentifier", + "src": "27541:3:18" + }, + "nativeSrc": "27541:14:18", + "nodeType": "YulFunctionCall", + "src": "27541:14:18" + }, + { + "hexValue": "2f72657075746174696f6e2d73636f7265", + "kind": "string", + "nativeSrc": "27557:19:18", + "nodeType": "YulLiteral", + "src": "27557:19:18", + "type": "", + "value": "/reputation-score" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27534:6:18", + "nodeType": "YulIdentifier", + "src": "27534:6:18" + }, + "nativeSrc": "27534:43:18", + "nodeType": "YulFunctionCall", + "src": "27534:43:18" + }, + "nativeSrc": "27534:43:18", + "nodeType": "YulExpressionStatement", + "src": "27534:43:18" + } + ] + }, + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "27417:167:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "27515:6:18", + "nodeType": "YulTypedName", + "src": "27515:6:18", + "type": "" + } + ], + "src": "27417:167:18" + }, + { + "body": { + "nativeSrc": "27754:238:18", + "nodeType": "YulBlock", + "src": "27754:238:18", + "statements": [ + { + "nativeSrc": "27764:92:18", + "nodeType": "YulAssignment", + "src": "27764:92:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27848:3:18", + "nodeType": "YulIdentifier", + "src": "27848:3:18" + }, + { + "kind": "number", + "nativeSrc": "27853:2:18", + "nodeType": "YulLiteral", + "src": "27853:2:18", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27771:76:18", + "nodeType": "YulIdentifier", + "src": "27771:76:18" + }, + "nativeSrc": "27771:85:18", + "nodeType": "YulFunctionCall", + "src": "27771:85:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27764:3:18", + "nodeType": "YulIdentifier", + "src": "27764:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27954:3:18", + "nodeType": "YulIdentifier", + "src": "27954:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "27865:88:18", + "nodeType": "YulIdentifier", + "src": "27865:88:18" + }, + "nativeSrc": "27865:93:18", + "nodeType": "YulFunctionCall", + "src": "27865:93:18" + }, + "nativeSrc": "27865:93:18", + "nodeType": "YulExpressionStatement", + "src": "27865:93:18" + }, + { + "nativeSrc": "27967:19:18", + "nodeType": "YulAssignment", + "src": "27967:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27978:3:18", + "nodeType": "YulIdentifier", + "src": "27978:3:18" + }, + { + "kind": "number", + "nativeSrc": "27983:2:18", + "nodeType": "YulLiteral", + "src": "27983:2:18", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27974:3:18", + "nodeType": "YulIdentifier", + "src": "27974:3:18" + }, + "nativeSrc": "27974:12:18", + "nodeType": "YulFunctionCall", + "src": "27974:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27967:3:18", + "nodeType": "YulIdentifier", + "src": "27967:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27590:402:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27742:3:18", + "nodeType": "YulTypedName", + "src": "27742:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27750:3:18", + "nodeType": "YulTypedName", + "src": "27750:3:18", + "type": "" + } + ], + "src": "27590:402:18" + }, + { + "body": { + "nativeSrc": "28530:855:18", + "nodeType": "YulBlock", + "src": "28530:855:18", + "statements": [ + { + "nativeSrc": "28541:99:18", + "nodeType": "YulAssignment", + "src": "28541:99:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "28627:6:18", + "nodeType": "YulIdentifier", + "src": "28627:6:18" + }, + { + "name": "pos", + "nativeSrc": "28636:3:18", + "nodeType": "YulIdentifier", + "src": "28636:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28548:78:18", + "nodeType": "YulIdentifier", + "src": "28548:78:18" + }, + "nativeSrc": "28548:92:18", + "nodeType": "YulFunctionCall", + "src": "28548:92:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28541:3:18", + "nodeType": "YulIdentifier", + "src": "28541:3:18" + } + ] + }, + { + "nativeSrc": "28650:155:18", + "nodeType": "YulAssignment", + "src": "28650:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28801:3:18", + "nodeType": "YulIdentifier", + "src": "28801:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28657:142:18", + "nodeType": "YulIdentifier", + "src": "28657:142:18" + }, + "nativeSrc": "28657:148:18", + "nodeType": "YulFunctionCall", + "src": "28657:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28650:3:18", + "nodeType": "YulIdentifier", + "src": "28650:3:18" + } + ] + }, + { + "nativeSrc": "28815:102:18", + "nodeType": "YulAssignment", + "src": "28815:102:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "28904:6:18", + "nodeType": "YulIdentifier", + "src": "28904:6:18" + }, + { + "name": "pos", + "nativeSrc": "28913:3:18", + "nodeType": "YulIdentifier", + "src": "28913:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28822:81:18", + "nodeType": "YulIdentifier", + "src": "28822:81:18" + }, + "nativeSrc": "28822:95:18", + "nodeType": "YulFunctionCall", + "src": "28822:95:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28815:3:18", + "nodeType": "YulIdentifier", + "src": "28815:3:18" + } + ] + }, + { + "nativeSrc": "28927:155:18", + "nodeType": "YulAssignment", + "src": "28927:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29078:3:18", + "nodeType": "YulIdentifier", + "src": "29078:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28934:142:18", + "nodeType": "YulIdentifier", + "src": "28934:142:18" + }, + "nativeSrc": "28934:148:18", + "nodeType": "YulFunctionCall", + "src": "28934:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28927:3:18", + "nodeType": "YulIdentifier", + "src": "28927:3:18" + } + ] + }, + { + "nativeSrc": "29092:102:18", + "nodeType": "YulAssignment", + "src": "29092:102:18", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "29181:6:18", + "nodeType": "YulIdentifier", + "src": "29181:6:18" + }, + { + "name": "pos", + "nativeSrc": "29190:3:18", + "nodeType": "YulIdentifier", + "src": "29190:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29099:81:18", + "nodeType": "YulIdentifier", + "src": "29099:81:18" + }, + "nativeSrc": "29099:95:18", + "nodeType": "YulFunctionCall", + "src": "29099:95:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29092:3:18", + "nodeType": "YulIdentifier", + "src": "29092:3:18" + } + ] + }, + { + "nativeSrc": "29204:155:18", + "nodeType": "YulAssignment", + "src": "29204:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29355:3:18", + "nodeType": "YulIdentifier", + "src": "29355:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29211:142:18", + "nodeType": "YulIdentifier", + "src": "29211:142:18" + }, + "nativeSrc": "29211:148:18", + "nodeType": "YulFunctionCall", + "src": "29211:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29204:3:18", + "nodeType": "YulIdentifier", + "src": "29204:3:18" + } + ] + }, + { + "nativeSrc": "29369:10:18", + "nodeType": "YulAssignment", + "src": "29369:10:18", + "value": { + "name": "pos", + "nativeSrc": "29376:3:18", + "nodeType": "YulIdentifier", + "src": "29376:3:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "29369:3:18", + "nodeType": "YulIdentifier", + "src": "29369:3:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "27998:1387:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28493:3:18", + "nodeType": "YulTypedName", + "src": "28493:3:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "28499:6:18", + "nodeType": "YulTypedName", + "src": "28499:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "28507:6:18", + "nodeType": "YulTypedName", + "src": "28507:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "28515:6:18", + "nodeType": "YulTypedName", + "src": "28515:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28526:3:18", + "nodeType": "YulTypedName", + "src": "28526:3:18", + "type": "" + } + ], + "src": "27998:1387:18" + }, + { + "body": { + "nativeSrc": "29504:742:18", + "nodeType": "YulBlock", + "src": "29504:742:18", + "statements": [ + { + "nativeSrc": "29514:29:18", + "nodeType": "YulVariableDeclaration", + "src": "29514:29:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "29537:5:18", + "nodeType": "YulIdentifier", + "src": "29537:5:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "29531:5:18", + "nodeType": "YulIdentifier", + "src": "29531:5:18" + }, + "nativeSrc": "29531:12:18", + "nodeType": "YulFunctionCall", + "src": "29531:12:18" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "29518:9:18", + "nodeType": "YulTypedName", + "src": "29518:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "29552:50:18", + "nodeType": "YulVariableDeclaration", + "src": "29552:50:18", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "29592:9:18", + "nodeType": "YulIdentifier", + "src": "29592:9:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "29566:25:18", + "nodeType": "YulIdentifier", + "src": "29566:25:18" + }, + "nativeSrc": "29566:36:18", + "nodeType": "YulFunctionCall", + "src": "29566:36:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "29556:6:18", + "nodeType": "YulTypedName", + "src": "29556:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "29611:78:18", + "nodeType": "YulAssignment", + "src": "29611:78:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29677:3:18", + "nodeType": "YulIdentifier", + "src": "29677:3:18" + }, + { + "name": "length", + "nativeSrc": "29682:6:18", + "nodeType": "YulIdentifier", + "src": "29682:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "29618:58:18", + "nodeType": "YulIdentifier", + "src": "29618:58:18" + }, + "nativeSrc": "29618:71:18", + "nodeType": "YulFunctionCall", + "src": "29618:71:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29611:3:18", + "nodeType": "YulIdentifier", + "src": "29611:3:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "29738:157:18", + "nodeType": "YulBlock", + "src": "29738:157:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29791:3:18", + "nodeType": "YulIdentifier", + "src": "29791:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "29800:9:18", + "nodeType": "YulIdentifier", + "src": "29800:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29815:4:18", + "nodeType": "YulLiteral", + "src": "29815:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "29811:3:18", + "nodeType": "YulIdentifier", + "src": "29811:3:18" + }, + "nativeSrc": "29811:9:18", + "nodeType": "YulFunctionCall", + "src": "29811:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "29796:3:18", + "nodeType": "YulIdentifier", + "src": "29796:3:18" + }, + "nativeSrc": "29796:25:18", + "nodeType": "YulFunctionCall", + "src": "29796:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29784:6:18", + "nodeType": "YulIdentifier", + "src": "29784:6:18" + }, + "nativeSrc": "29784:38:18", + "nodeType": "YulFunctionCall", + "src": "29784:38:18" + }, + "nativeSrc": "29784:38:18", + "nodeType": "YulExpressionStatement", + "src": "29784:38:18" + }, + { + "nativeSrc": "29835:50:18", + "nodeType": "YulAssignment", + "src": "29835:50:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29846:3:18", + "nodeType": "YulIdentifier", + "src": "29846:3:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29855:4:18", + "nodeType": "YulLiteral", + "src": "29855:4:18", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "29875:6:18", + "nodeType": "YulIdentifier", + "src": "29875:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "29868:6:18", + "nodeType": "YulIdentifier", + "src": "29868:6:18" + }, + "nativeSrc": "29868:14:18", + "nodeType": "YulFunctionCall", + "src": "29868:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "29861:6:18", + "nodeType": "YulIdentifier", + "src": "29861:6:18" + }, + "nativeSrc": "29861:22:18", + "nodeType": "YulFunctionCall", + "src": "29861:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "29851:3:18", + "nodeType": "YulIdentifier", + "src": "29851:3:18" + }, + "nativeSrc": "29851:33:18", + "nodeType": "YulFunctionCall", + "src": "29851:33:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29842:3:18", + "nodeType": "YulIdentifier", + "src": "29842:3:18" + }, + "nativeSrc": "29842:43:18", + "nodeType": "YulFunctionCall", + "src": "29842:43:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "29835:3:18", + "nodeType": "YulIdentifier", + "src": "29835:3:18" + } + ] + } + ] + }, + "nativeSrc": "29731:164:18", + "nodeType": "YulCase", + "src": "29731:164:18", + "value": { + "kind": "number", + "nativeSrc": "29736:1:18", + "nodeType": "YulLiteral", + "src": "29736:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "29911:329:18", + "nodeType": "YulBlock", + "src": "29911:329:18", + "statements": [ + { + "nativeSrc": "29956:53:18", + "nodeType": "YulVariableDeclaration", + "src": "29956:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30003:5:18", + "nodeType": "YulIdentifier", + "src": "30003:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "29971:31:18", + "nodeType": "YulIdentifier", + "src": "29971:31:18" + }, + "nativeSrc": "29971:38:18", + "nodeType": "YulFunctionCall", + "src": "29971:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "29960:7:18", + "nodeType": "YulTypedName", + "src": "29960:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "30022:10:18", + "nodeType": "YulVariableDeclaration", + "src": "30022:10:18", + "value": { + "kind": "number", + "nativeSrc": "30031:1:18", + "nodeType": "YulLiteral", + "src": "30031:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "30026:1:18", + "nodeType": "YulTypedName", + "src": "30026:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "30089:110:18", + "nodeType": "YulBlock", + "src": "30089:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30118:3:18", + "nodeType": "YulIdentifier", + "src": "30118:3:18" + }, + { + "name": "i", + "nativeSrc": "30123:1:18", + "nodeType": "YulIdentifier", + "src": "30123:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30114:3:18", + "nodeType": "YulIdentifier", + "src": "30114:3:18" + }, + "nativeSrc": "30114:11:18", + "nodeType": "YulFunctionCall", + "src": "30114:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "30133:7:18", + "nodeType": "YulIdentifier", + "src": "30133:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "30127:5:18", + "nodeType": "YulIdentifier", + "src": "30127:5:18" + }, + "nativeSrc": "30127:14:18", + "nodeType": "YulFunctionCall", + "src": "30127:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30107:6:18", + "nodeType": "YulIdentifier", + "src": "30107:6:18" + }, + "nativeSrc": "30107:35:18", + "nodeType": "YulFunctionCall", + "src": "30107:35:18" + }, + "nativeSrc": "30107:35:18", + "nodeType": "YulExpressionStatement", + "src": "30107:35:18" + }, + { + "nativeSrc": "30159:26:18", + "nodeType": "YulAssignment", + "src": "30159:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "30174:7:18", + "nodeType": "YulIdentifier", + "src": "30174:7:18" + }, + { + "kind": "number", + "nativeSrc": "30183:1:18", + "nodeType": "YulLiteral", + "src": "30183:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30170:3:18", + "nodeType": "YulIdentifier", + "src": "30170:3:18" + }, + "nativeSrc": "30170:15:18", + "nodeType": "YulFunctionCall", + "src": "30170:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "30159:7:18", + "nodeType": "YulIdentifier", + "src": "30159:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "30056:1:18", + "nodeType": "YulIdentifier", + "src": "30056:1:18" + }, + { + "name": "length", + "nativeSrc": "30059:6:18", + "nodeType": "YulIdentifier", + "src": "30059:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "30053:2:18", + "nodeType": "YulIdentifier", + "src": "30053:2:18" + }, + "nativeSrc": "30053:13:18", + "nodeType": "YulFunctionCall", + "src": "30053:13:18" + }, + "nativeSrc": "30045:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "30067:21:18", + "nodeType": "YulBlock", + "src": "30067:21:18", + "statements": [ + { + "nativeSrc": "30069:17:18", + "nodeType": "YulAssignment", + "src": "30069:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "30078:1:18", + "nodeType": "YulIdentifier", + "src": "30078:1:18" + }, + { + "kind": "number", + "nativeSrc": "30081:4:18", + "nodeType": "YulLiteral", + "src": "30081:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30074:3:18", + "nodeType": "YulIdentifier", + "src": "30074:3:18" + }, + "nativeSrc": "30074:12:18", + "nodeType": "YulFunctionCall", + "src": "30074:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "30069:1:18", + "nodeType": "YulIdentifier", + "src": "30069:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "30049:3:18", + "nodeType": "YulBlock", + "src": "30049:3:18", + "statements": [] + }, + "src": "30045:154:18" + }, + { + "nativeSrc": "30212:18:18", + "nodeType": "YulAssignment", + "src": "30212:18:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30223:3:18", + "nodeType": "YulIdentifier", + "src": "30223:3:18" + }, + { + "name": "i", + "nativeSrc": "30228:1:18", + "nodeType": "YulIdentifier", + "src": "30228:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30219:3:18", + "nodeType": "YulIdentifier", + "src": "30219:3:18" + }, + "nativeSrc": "30219:11:18", + "nodeType": "YulFunctionCall", + "src": "30219:11:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "30212:3:18", + "nodeType": "YulIdentifier", + "src": "30212:3:18" + } + ] + } + ] + }, + "nativeSrc": "29904:336:18", + "nodeType": "YulCase", + "src": "29904:336:18", + "value": { + "kind": "number", + "nativeSrc": "29909:1:18", + "nodeType": "YulLiteral", + "src": "29909:1:18", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "29709:9:18", + "nodeType": "YulIdentifier", + "src": "29709:9:18" + }, + { + "kind": "number", + "nativeSrc": "29720:1:18", + "nodeType": "YulLiteral", + "src": "29720:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "29705:3:18", + "nodeType": "YulIdentifier", + "src": "29705:3:18" + }, + "nativeSrc": "29705:17:18", + "nodeType": "YulFunctionCall", + "src": "29705:17:18" + }, + "nativeSrc": "29698:542:18", + "nodeType": "YulSwitch", + "src": "29698:542:18" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "29415:831:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "29485:5:18", + "nodeType": "YulTypedName", + "src": "29485:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "29492:3:18", + "nodeType": "YulTypedName", + "src": "29492:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "29500:3:18", + "nodeType": "YulTypedName", + "src": "29500:3:18", + "type": "" + } + ], + "src": "29415:831:18" + }, + { + "body": { + "nativeSrc": "30415:345:18", + "nodeType": "YulBlock", + "src": "30415:345:18", + "statements": [ + { + "nativeSrc": "30425:26:18", + "nodeType": "YulAssignment", + "src": "30425:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30437:9:18", + "nodeType": "YulIdentifier", + "src": "30437:9:18" + }, + { + "kind": "number", + "nativeSrc": "30448:2:18", + "nodeType": "YulLiteral", + "src": "30448:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30433:3:18", + "nodeType": "YulIdentifier", + "src": "30433:3:18" + }, + "nativeSrc": "30433:18:18", + "nodeType": "YulFunctionCall", + "src": "30433:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30425:4:18", + "nodeType": "YulIdentifier", + "src": "30425:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30472:9:18", + "nodeType": "YulIdentifier", + "src": "30472:9:18" + }, + { + "kind": "number", + "nativeSrc": "30483:1:18", + "nodeType": "YulLiteral", + "src": "30483:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30468:3:18", + "nodeType": "YulIdentifier", + "src": "30468:3:18" + }, + "nativeSrc": "30468:17:18", + "nodeType": "YulFunctionCall", + "src": "30468:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "30491:4:18", + "nodeType": "YulIdentifier", + "src": "30491:4:18" + }, + { + "name": "headStart", + "nativeSrc": "30497:9:18", + "nodeType": "YulIdentifier", + "src": "30497:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30487:3:18", + "nodeType": "YulIdentifier", + "src": "30487:3:18" + }, + "nativeSrc": "30487:20:18", + "nodeType": "YulFunctionCall", + "src": "30487:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30461:6:18", + "nodeType": "YulIdentifier", + "src": "30461:6:18" + }, + "nativeSrc": "30461:47:18", + "nodeType": "YulFunctionCall", + "src": "30461:47:18" + }, + "nativeSrc": "30461:47:18", + "nodeType": "YulExpressionStatement", + "src": "30461:47:18" + }, + { + "nativeSrc": "30517:83:18", + "nodeType": "YulAssignment", + "src": "30517:83:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "30586:6:18", + "nodeType": "YulIdentifier", + "src": "30586:6:18" + }, + { + "name": "tail", + "nativeSrc": "30595:4:18", + "nodeType": "YulIdentifier", + "src": "30595:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "30525:60:18", + "nodeType": "YulIdentifier", + "src": "30525:60:18" + }, + "nativeSrc": "30525:75:18", + "nodeType": "YulFunctionCall", + "src": "30525:75:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30517:4:18", + "nodeType": "YulIdentifier", + "src": "30517:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30621:9:18", + "nodeType": "YulIdentifier", + "src": "30621:9:18" + }, + { + "kind": "number", + "nativeSrc": "30632:2:18", + "nodeType": "YulLiteral", + "src": "30632:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30617:3:18", + "nodeType": "YulIdentifier", + "src": "30617:3:18" + }, + "nativeSrc": "30617:18:18", + "nodeType": "YulFunctionCall", + "src": "30617:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "30641:4:18", + "nodeType": "YulIdentifier", + "src": "30641:4:18" + }, + { + "name": "headStart", + "nativeSrc": "30647:9:18", + "nodeType": "YulIdentifier", + "src": "30647:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30637:3:18", + "nodeType": "YulIdentifier", + "src": "30637:3:18" + }, + "nativeSrc": "30637:20:18", + "nodeType": "YulFunctionCall", + "src": "30637:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30610:6:18", + "nodeType": "YulIdentifier", + "src": "30610:6:18" + }, + "nativeSrc": "30610:48:18", + "nodeType": "YulFunctionCall", + "src": "30610:48:18" + }, + "nativeSrc": "30610:48:18", + "nodeType": "YulExpressionStatement", + "src": "30610:48:18" + }, + { + "nativeSrc": "30667:86:18", + "nodeType": "YulAssignment", + "src": "30667:86:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "30739:6:18", + "nodeType": "YulIdentifier", + "src": "30739:6:18" + }, + { + "name": "tail", + "nativeSrc": "30748:4:18", + "nodeType": "YulIdentifier", + "src": "30748:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "30675:63:18", + "nodeType": "YulIdentifier", + "src": "30675:63:18" + }, + "nativeSrc": "30675:78:18", + "nodeType": "YulFunctionCall", + "src": "30675:78:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30667:4:18", + "nodeType": "YulIdentifier", + "src": "30667:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "30252:508:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30379:9:18", + "nodeType": "YulTypedName", + "src": "30379:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "30391:6:18", + "nodeType": "YulTypedName", + "src": "30391:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "30399:6:18", + "nodeType": "YulTypedName", + "src": "30399:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "30410:4:18", + "nodeType": "YulTypedName", + "src": "30410:4:18", + "type": "" + } + ], + "src": "30252:508:18" + }, + { + "body": { + "nativeSrc": "30810:49:18", + "nodeType": "YulBlock", + "src": "30810:49:18", + "statements": [ + { + "nativeSrc": "30820:33:18", + "nodeType": "YulAssignment", + "src": "30820:33:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "30838:5:18", + "nodeType": "YulIdentifier", + "src": "30838:5:18" + }, + { + "kind": "number", + "nativeSrc": "30845:2:18", + "nodeType": "YulLiteral", + "src": "30845:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30834:3:18", + "nodeType": "YulIdentifier", + "src": "30834:3:18" + }, + "nativeSrc": "30834:14:18", + "nodeType": "YulFunctionCall", + "src": "30834:14:18" + }, + { + "kind": "number", + "nativeSrc": "30850:2:18", + "nodeType": "YulLiteral", + "src": "30850:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "30830:3:18", + "nodeType": "YulIdentifier", + "src": "30830:3:18" + }, + "nativeSrc": "30830:23:18", + "nodeType": "YulFunctionCall", + "src": "30830:23:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "30820:6:18", + "nodeType": "YulIdentifier", + "src": "30820:6:18" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "30766:93:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "30793:5:18", + "nodeType": "YulTypedName", + "src": "30793:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "30803:6:18", + "nodeType": "YulTypedName", + "src": "30803:6:18", + "type": "" + } + ], + "src": "30766:93:18" + }, + { + "body": { + "nativeSrc": "30918:54:18", + "nodeType": "YulBlock", + "src": "30918:54:18", + "statements": [ + { + "nativeSrc": "30928:37:18", + "nodeType": "YulAssignment", + "src": "30928:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "30953:4:18", + "nodeType": "YulIdentifier", + "src": "30953:4:18" + }, + { + "name": "value", + "nativeSrc": "30959:5:18", + "nodeType": "YulIdentifier", + "src": "30959:5:18" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30949:3:18", + "nodeType": "YulIdentifier", + "src": "30949:3:18" + }, + "nativeSrc": "30949:16:18", + "nodeType": "YulFunctionCall", + "src": "30949:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "30928:8:18", + "nodeType": "YulIdentifier", + "src": "30928:8:18" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "30865:107:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "30893:4:18", + "nodeType": "YulTypedName", + "src": "30893:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "30899:5:18", + "nodeType": "YulTypedName", + "src": "30899:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "30909:8:18", + "nodeType": "YulTypedName", + "src": "30909:8:18", + "type": "" + } + ], + "src": "30865:107:18" + }, + { + "body": { + "nativeSrc": "31054:317:18", + "nodeType": "YulBlock", + "src": "31054:317:18", + "statements": [ + { + "nativeSrc": "31064:35:18", + "nodeType": "YulVariableDeclaration", + "src": "31064:35:18", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "31085:10:18", + "nodeType": "YulIdentifier", + "src": "31085:10:18" + }, + { + "kind": "number", + "nativeSrc": "31097:1:18", + "nodeType": "YulLiteral", + "src": "31097:1:18", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "31081:3:18", + "nodeType": "YulIdentifier", + "src": "31081:3:18" + }, + "nativeSrc": "31081:18:18", + "nodeType": "YulFunctionCall", + "src": "31081:18:18" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "31068:9:18", + "nodeType": "YulTypedName", + "src": "31068:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "31108:109:18", + "nodeType": "YulVariableDeclaration", + "src": "31108:109:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "31139:9:18", + "nodeType": "YulIdentifier", + "src": "31139:9:18" + }, + { + "kind": "number", + "nativeSrc": "31150:66:18", + "nodeType": "YulLiteral", + "src": "31150:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "31120:18:18", + "nodeType": "YulIdentifier", + "src": "31120:18:18" + }, + "nativeSrc": "31120:97:18", + "nodeType": "YulFunctionCall", + "src": "31120:97:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "31112:4:18", + "nodeType": "YulTypedName", + "src": "31112:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "31226:51:18", + "nodeType": "YulAssignment", + "src": "31226:51:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "31257:9:18", + "nodeType": "YulIdentifier", + "src": "31257:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "31268:8:18", + "nodeType": "YulIdentifier", + "src": "31268:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "31238:18:18", + "nodeType": "YulIdentifier", + "src": "31238:18:18" + }, + "nativeSrc": "31238:39:18", + "nodeType": "YulFunctionCall", + "src": "31238:39:18" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "31226:8:18", + "nodeType": "YulIdentifier", + "src": "31226:8:18" + } + ] + }, + { + "nativeSrc": "31286:30:18", + "nodeType": "YulAssignment", + "src": "31286:30:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "31299:5:18", + "nodeType": "YulIdentifier", + "src": "31299:5:18" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "31310:4:18", + "nodeType": "YulIdentifier", + "src": "31310:4:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "31306:3:18", + "nodeType": "YulIdentifier", + "src": "31306:3:18" + }, + "nativeSrc": "31306:9:18", + "nodeType": "YulFunctionCall", + "src": "31306:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "31295:3:18", + "nodeType": "YulIdentifier", + "src": "31295:3:18" + }, + "nativeSrc": "31295:21:18", + "nodeType": "YulFunctionCall", + "src": "31295:21:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "31286:5:18", + "nodeType": "YulIdentifier", + "src": "31286:5:18" + } + ] + }, + { + "nativeSrc": "31325:40:18", + "nodeType": "YulAssignment", + "src": "31325:40:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "31338:5:18", + "nodeType": "YulIdentifier", + "src": "31338:5:18" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "31349:8:18", + "nodeType": "YulIdentifier", + "src": "31349:8:18" + }, + { + "name": "mask", + "nativeSrc": "31359:4:18", + "nodeType": "YulIdentifier", + "src": "31359:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "31345:3:18", + "nodeType": "YulIdentifier", + "src": "31345:3:18" + }, + "nativeSrc": "31345:19:18", + "nodeType": "YulFunctionCall", + "src": "31345:19:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "31335:2:18", + "nodeType": "YulIdentifier", + "src": "31335:2:18" + }, + "nativeSrc": "31335:30:18", + "nodeType": "YulFunctionCall", + "src": "31335:30:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "31325:6:18", + "nodeType": "YulIdentifier", + "src": "31325:6:18" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "30978:393:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31015:5:18", + "nodeType": "YulTypedName", + "src": "31015:5:18", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "31022:10:18", + "nodeType": "YulTypedName", + "src": "31022:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "31034:8:18", + "nodeType": "YulTypedName", + "src": "31034:8:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "31047:6:18", + "nodeType": "YulTypedName", + "src": "31047:6:18", + "type": "" + } + ], + "src": "30978:393:18" + }, + { + "body": { + "nativeSrc": "31437:82:18", + "nodeType": "YulBlock", + "src": "31437:82:18", + "statements": [ + { + "nativeSrc": "31447:66:18", + "nodeType": "YulAssignment", + "src": "31447:66:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "31505:5:18", + "nodeType": "YulIdentifier", + "src": "31505:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31487:17:18", + "nodeType": "YulIdentifier", + "src": "31487:17:18" + }, + "nativeSrc": "31487:24:18", + "nodeType": "YulFunctionCall", + "src": "31487:24:18" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "31478:8:18", + "nodeType": "YulIdentifier", + "src": "31478:8:18" + }, + "nativeSrc": "31478:34:18", + "nodeType": "YulFunctionCall", + "src": "31478:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31460:17:18", + "nodeType": "YulIdentifier", + "src": "31460:17:18" + }, + "nativeSrc": "31460:53:18", + "nodeType": "YulFunctionCall", + "src": "31460:53:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "31447:9:18", + "nodeType": "YulIdentifier", + "src": "31447:9:18" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "31377:142:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31417:5:18", + "nodeType": "YulTypedName", + "src": "31417:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "31427:9:18", + "nodeType": "YulTypedName", + "src": "31427:9:18", + "type": "" + } + ], + "src": "31377:142:18" + }, + { + "body": { + "nativeSrc": "31572:28:18", + "nodeType": "YulBlock", + "src": "31572:28:18", + "statements": [ + { + "nativeSrc": "31582:12:18", + "nodeType": "YulAssignment", + "src": "31582:12:18", + "value": { + "name": "value", + "nativeSrc": "31589:5:18", + "nodeType": "YulIdentifier", + "src": "31589:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "31582:3:18", + "nodeType": "YulIdentifier", + "src": "31582:3:18" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "31525:75:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31558:5:18", + "nodeType": "YulTypedName", + "src": "31558:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "31568:3:18", + "nodeType": "YulTypedName", + "src": "31568:3:18", + "type": "" + } + ], + "src": "31525:75:18" + }, + { + "body": { + "nativeSrc": "31682:193:18", + "nodeType": "YulBlock", + "src": "31682:193:18", + "statements": [ + { + "nativeSrc": "31692:63:18", + "nodeType": "YulVariableDeclaration", + "src": "31692:63:18", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "31747:7:18", + "nodeType": "YulIdentifier", + "src": "31747:7:18" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "31716:30:18", + "nodeType": "YulIdentifier", + "src": "31716:30:18" + }, + "nativeSrc": "31716:39:18", + "nodeType": "YulFunctionCall", + "src": "31716:39:18" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "31696:16:18", + "nodeType": "YulTypedName", + "src": "31696:16:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "31771:4:18", + "nodeType": "YulIdentifier", + "src": "31771:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "31811:4:18", + "nodeType": "YulIdentifier", + "src": "31811:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "31805:5:18", + "nodeType": "YulIdentifier", + "src": "31805:5:18" + }, + "nativeSrc": "31805:11:18", + "nodeType": "YulFunctionCall", + "src": "31805:11:18" + }, + { + "name": "offset", + "nativeSrc": "31818:6:18", + "nodeType": "YulIdentifier", + "src": "31818:6:18" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "31850:16:18", + "nodeType": "YulIdentifier", + "src": "31850:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "31826:23:18", + "nodeType": "YulIdentifier", + "src": "31826:23:18" + }, + "nativeSrc": "31826:41:18", + "nodeType": "YulFunctionCall", + "src": "31826:41:18" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "31777:27:18", + "nodeType": "YulIdentifier", + "src": "31777:27:18" + }, + "nativeSrc": "31777:91:18", + "nodeType": "YulFunctionCall", + "src": "31777:91:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "31764:6:18", + "nodeType": "YulIdentifier", + "src": "31764:6:18" + }, + "nativeSrc": "31764:105:18", + "nodeType": "YulFunctionCall", + "src": "31764:105:18" + }, + "nativeSrc": "31764:105:18", + "nodeType": "YulExpressionStatement", + "src": "31764:105:18" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "31606:269:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "31659:4:18", + "nodeType": "YulTypedName", + "src": "31659:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "31665:6:18", + "nodeType": "YulTypedName", + "src": "31665:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "31673:7:18", + "nodeType": "YulTypedName", + "src": "31673:7:18", + "type": "" + } + ], + "src": "31606:269:18" + }, + { + "body": { + "nativeSrc": "31930:24:18", + "nodeType": "YulBlock", + "src": "31930:24:18", + "statements": [ + { + "nativeSrc": "31940:8:18", + "nodeType": "YulAssignment", + "src": "31940:8:18", + "value": { + "kind": "number", + "nativeSrc": "31947:1:18", + "nodeType": "YulLiteral", + "src": "31947:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "31940:3:18", + "nodeType": "YulIdentifier", + "src": "31940:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "31881:73:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "31926:3:18", + "nodeType": "YulTypedName", + "src": "31926:3:18", + "type": "" + } + ], + "src": "31881:73:18" + }, + { + "body": { + "nativeSrc": "32013:136:18", + "nodeType": "YulBlock", + "src": "32013:136:18", + "statements": [ + { + "nativeSrc": "32023:46:18", + "nodeType": "YulVariableDeclaration", + "src": "32023:46:18", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "32037:30:18", + "nodeType": "YulIdentifier", + "src": "32037:30:18" + }, + "nativeSrc": "32037:32:18", + "nodeType": "YulFunctionCall", + "src": "32037:32:18" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "32027:6:18", + "nodeType": "YulTypedName", + "src": "32027:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32122:4:18", + "nodeType": "YulIdentifier", + "src": "32122:4:18" + }, + { + "name": "offset", + "nativeSrc": "32128:6:18", + "nodeType": "YulIdentifier", + "src": "32128:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "32136:6:18", + "nodeType": "YulIdentifier", + "src": "32136:6:18" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "32078:43:18", + "nodeType": "YulIdentifier", + "src": "32078:43:18" + }, + "nativeSrc": "32078:65:18", + "nodeType": "YulFunctionCall", + "src": "32078:65:18" + }, + "nativeSrc": "32078:65:18", + "nodeType": "YulExpressionStatement", + "src": "32078:65:18" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "31960:189:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "31999:4:18", + "nodeType": "YulTypedName", + "src": "31999:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32005:6:18", + "nodeType": "YulTypedName", + "src": "32005:6:18", + "type": "" + } + ], + "src": "31960:189:18" + }, + { + "body": { + "nativeSrc": "32205:136:18", + "nodeType": "YulBlock", + "src": "32205:136:18", + "statements": [ + { + "body": { + "nativeSrc": "32272:63:18", + "nodeType": "YulBlock", + "src": "32272:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "32316:5:18", + "nodeType": "YulIdentifier", + "src": "32316:5:18" + }, + { + "kind": "number", + "nativeSrc": "32323:1:18", + "nodeType": "YulLiteral", + "src": "32323:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "32286:29:18", + "nodeType": "YulIdentifier", + "src": "32286:29:18" + }, + "nativeSrc": "32286:39:18", + "nodeType": "YulFunctionCall", + "src": "32286:39:18" + }, + "nativeSrc": "32286:39:18", + "nodeType": "YulExpressionStatement", + "src": "32286:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "32225:5:18", + "nodeType": "YulIdentifier", + "src": "32225:5:18" + }, + { + "name": "end", + "nativeSrc": "32232:3:18", + "nodeType": "YulIdentifier", + "src": "32232:3:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "32222:2:18", + "nodeType": "YulIdentifier", + "src": "32222:2:18" + }, + "nativeSrc": "32222:14:18", + "nodeType": "YulFunctionCall", + "src": "32222:14:18" + }, + "nativeSrc": "32215:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "32237:26:18", + "nodeType": "YulBlock", + "src": "32237:26:18", + "statements": [ + { + "nativeSrc": "32239:22:18", + "nodeType": "YulAssignment", + "src": "32239:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "32252:5:18", + "nodeType": "YulIdentifier", + "src": "32252:5:18" + }, + { + "kind": "number", + "nativeSrc": "32259:1:18", + "nodeType": "YulLiteral", + "src": "32259:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32248:3:18", + "nodeType": "YulIdentifier", + "src": "32248:3:18" + }, + "nativeSrc": "32248:13:18", + "nodeType": "YulFunctionCall", + "src": "32248:13:18" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "32239:5:18", + "nodeType": "YulIdentifier", + "src": "32239:5:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "32219:2:18", + "nodeType": "YulBlock", + "src": "32219:2:18", + "statements": [] + }, + "src": "32215:120:18" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "32155:186:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "32193:5:18", + "nodeType": "YulTypedName", + "src": "32193:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "32200:3:18", + "nodeType": "YulTypedName", + "src": "32200:3:18", + "type": "" + } + ], + "src": "32155:186:18" + }, + { + "body": { + "nativeSrc": "32426:464:18", + "nodeType": "YulBlock", + "src": "32426:464:18", + "statements": [ + { + "body": { + "nativeSrc": "32452:431:18", + "nodeType": "YulBlock", + "src": "32452:431:18", + "statements": [ + { + "nativeSrc": "32466:54:18", + "nodeType": "YulVariableDeclaration", + "src": "32466:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "32514:5:18", + "nodeType": "YulIdentifier", + "src": "32514:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "32482:31:18", + "nodeType": "YulIdentifier", + "src": "32482:31:18" + }, + "nativeSrc": "32482:38:18", + "nodeType": "YulFunctionCall", + "src": "32482:38:18" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "32470:8:18", + "nodeType": "YulTypedName", + "src": "32470:8:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32533:63:18", + "nodeType": "YulVariableDeclaration", + "src": "32533:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "32556:8:18", + "nodeType": "YulIdentifier", + "src": "32556:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "32584:10:18", + "nodeType": "YulIdentifier", + "src": "32584:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "32566:17:18", + "nodeType": "YulIdentifier", + "src": "32566:17:18" + }, + "nativeSrc": "32566:29:18", + "nodeType": "YulFunctionCall", + "src": "32566:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32552:3:18", + "nodeType": "YulIdentifier", + "src": "32552:3:18" + }, + "nativeSrc": "32552:44:18", + "nodeType": "YulFunctionCall", + "src": "32552:44:18" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "32537:11:18", + "nodeType": "YulTypedName", + "src": "32537:11:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "32753:27:18", + "nodeType": "YulBlock", + "src": "32753:27:18", + "statements": [ + { + "nativeSrc": "32755:23:18", + "nodeType": "YulAssignment", + "src": "32755:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "32770:8:18", + "nodeType": "YulIdentifier", + "src": "32770:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "32755:11:18", + "nodeType": "YulIdentifier", + "src": "32755:11:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "32737:10:18", + "nodeType": "YulIdentifier", + "src": "32737:10:18" + }, + { + "kind": "number", + "nativeSrc": "32749:2:18", + "nodeType": "YulLiteral", + "src": "32749:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "32734:2:18", + "nodeType": "YulIdentifier", + "src": "32734:2:18" + }, + "nativeSrc": "32734:18:18", + "nodeType": "YulFunctionCall", + "src": "32734:18:18" + }, + "nativeSrc": "32731:49:18", + "nodeType": "YulIf", + "src": "32731:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "32822:11:18", + "nodeType": "YulIdentifier", + "src": "32822:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "32839:8:18", + "nodeType": "YulIdentifier", + "src": "32839:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "32867:3:18", + "nodeType": "YulIdentifier", + "src": "32867:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "32849:17:18", + "nodeType": "YulIdentifier", + "src": "32849:17:18" + }, + "nativeSrc": "32849:22:18", + "nodeType": "YulFunctionCall", + "src": "32849:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32835:3:18", + "nodeType": "YulIdentifier", + "src": "32835:3:18" + }, + "nativeSrc": "32835:37:18", + "nodeType": "YulFunctionCall", + "src": "32835:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "32793:28:18", + "nodeType": "YulIdentifier", + "src": "32793:28:18" + }, + "nativeSrc": "32793:80:18", + "nodeType": "YulFunctionCall", + "src": "32793:80:18" + }, + "nativeSrc": "32793:80:18", + "nodeType": "YulExpressionStatement", + "src": "32793:80:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "32443:3:18", + "nodeType": "YulIdentifier", + "src": "32443:3:18" + }, + { + "kind": "number", + "nativeSrc": "32448:2:18", + "nodeType": "YulLiteral", + "src": "32448:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "32440:2:18", + "nodeType": "YulIdentifier", + "src": "32440:2:18" + }, + "nativeSrc": "32440:11:18", + "nodeType": "YulFunctionCall", + "src": "32440:11:18" + }, + "nativeSrc": "32437:446:18", + "nodeType": "YulIf", + "src": "32437:446:18" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "32347:543:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "32402:5:18", + "nodeType": "YulTypedName", + "src": "32402:5:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "32409:3:18", + "nodeType": "YulTypedName", + "src": "32409:3:18", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "32414:10:18", + "nodeType": "YulTypedName", + "src": "32414:10:18", + "type": "" + } + ], + "src": "32347:543:18" + }, + { + "body": { + "nativeSrc": "32959:54:18", + "nodeType": "YulBlock", + "src": "32959:54:18", + "statements": [ + { + "nativeSrc": "32969:37:18", + "nodeType": "YulAssignment", + "src": "32969:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "32994:4:18", + "nodeType": "YulIdentifier", + "src": "32994:4:18" + }, + { + "name": "value", + "nativeSrc": "33000:5:18", + "nodeType": "YulIdentifier", + "src": "33000:5:18" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "32990:3:18", + "nodeType": "YulIdentifier", + "src": "32990:3:18" + }, + "nativeSrc": "32990:16:18", + "nodeType": "YulFunctionCall", + "src": "32990:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "32969:8:18", + "nodeType": "YulIdentifier", + "src": "32969:8:18" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "32896:117:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "32934:4:18", + "nodeType": "YulTypedName", + "src": "32934:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "32940:5:18", + "nodeType": "YulTypedName", + "src": "32940:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "32950:8:18", + "nodeType": "YulTypedName", + "src": "32950:8:18", + "type": "" + } + ], + "src": "32896:117:18" + }, + { + "body": { + "nativeSrc": "33070:118:18", + "nodeType": "YulBlock", + "src": "33070:118:18", + "statements": [ + { + "nativeSrc": "33080:68:18", + "nodeType": "YulVariableDeclaration", + "src": "33080:68:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33129:1:18", + "nodeType": "YulLiteral", + "src": "33129:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "33132:5:18", + "nodeType": "YulIdentifier", + "src": "33132:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "33125:3:18", + "nodeType": "YulIdentifier", + "src": "33125:3:18" + }, + "nativeSrc": "33125:13:18", + "nodeType": "YulFunctionCall", + "src": "33125:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33144:1:18", + "nodeType": "YulLiteral", + "src": "33144:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "33140:3:18", + "nodeType": "YulIdentifier", + "src": "33140:3:18" + }, + "nativeSrc": "33140:6:18", + "nodeType": "YulFunctionCall", + "src": "33140:6:18" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "33096:28:18", + "nodeType": "YulIdentifier", + "src": "33096:28:18" + }, + "nativeSrc": "33096:51:18", + "nodeType": "YulFunctionCall", + "src": "33096:51:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "33092:3:18", + "nodeType": "YulIdentifier", + "src": "33092:3:18" + }, + "nativeSrc": "33092:56:18", + "nodeType": "YulFunctionCall", + "src": "33092:56:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "33084:4:18", + "nodeType": "YulTypedName", + "src": "33084:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "33157:25:18", + "nodeType": "YulAssignment", + "src": "33157:25:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "33171:4:18", + "nodeType": "YulIdentifier", + "src": "33171:4:18" + }, + { + "name": "mask", + "nativeSrc": "33177:4:18", + "nodeType": "YulIdentifier", + "src": "33177:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "33167:3:18", + "nodeType": "YulIdentifier", + "src": "33167:3:18" + }, + "nativeSrc": "33167:15:18", + "nodeType": "YulFunctionCall", + "src": "33167:15:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "33157:6:18", + "nodeType": "YulIdentifier", + "src": "33157:6:18" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "33019:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "33047:4:18", + "nodeType": "YulTypedName", + "src": "33047:4:18", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "33053:5:18", + "nodeType": "YulTypedName", + "src": "33053:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "33063:6:18", + "nodeType": "YulTypedName", + "src": "33063:6:18", + "type": "" + } + ], + "src": "33019:169:18" + }, + { + "body": { + "nativeSrc": "33274:214:18", + "nodeType": "YulBlock", + "src": "33274:214:18", + "statements": [ + { + "nativeSrc": "33407:37:18", + "nodeType": "YulAssignment", + "src": "33407:37:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "33434:4:18", + "nodeType": "YulIdentifier", + "src": "33434:4:18" + }, + { + "name": "len", + "nativeSrc": "33440:3:18", + "nodeType": "YulIdentifier", + "src": "33440:3:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "33415:18:18", + "nodeType": "YulIdentifier", + "src": "33415:18:18" + }, + "nativeSrc": "33415:29:18", + "nodeType": "YulFunctionCall", + "src": "33415:29:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "33407:4:18", + "nodeType": "YulIdentifier", + "src": "33407:4:18" + } + ] + }, + { + "nativeSrc": "33453:29:18", + "nodeType": "YulAssignment", + "src": "33453:29:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "33464:4:18", + "nodeType": "YulIdentifier", + "src": "33464:4:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33474:1:18", + "nodeType": "YulLiteral", + "src": "33474:1:18", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "33477:3:18", + "nodeType": "YulIdentifier", + "src": "33477:3:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "33470:3:18", + "nodeType": "YulIdentifier", + "src": "33470:3:18" + }, + "nativeSrc": "33470:11:18", + "nodeType": "YulFunctionCall", + "src": "33470:11:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "33461:2:18", + "nodeType": "YulIdentifier", + "src": "33461:2:18" + }, + "nativeSrc": "33461:21:18", + "nodeType": "YulFunctionCall", + "src": "33461:21:18" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "33453:4:18", + "nodeType": "YulIdentifier", + "src": "33453:4:18" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "33193:295:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "33255:4:18", + "nodeType": "YulTypedName", + "src": "33255:4:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "33261:3:18", + "nodeType": "YulTypedName", + "src": "33261:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "33269:4:18", + "nodeType": "YulTypedName", + "src": "33269:4:18", + "type": "" + } + ], + "src": "33193:295:18" + }, + { + "body": { + "nativeSrc": "33585:1303:18", + "nodeType": "YulBlock", + "src": "33585:1303:18", + "statements": [ + { + "nativeSrc": "33596:51:18", + "nodeType": "YulVariableDeclaration", + "src": "33596:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "33643:3:18", + "nodeType": "YulIdentifier", + "src": "33643:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "33610:32:18", + "nodeType": "YulIdentifier", + "src": "33610:32:18" + }, + "nativeSrc": "33610:37:18", + "nodeType": "YulFunctionCall", + "src": "33610:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "33600:6:18", + "nodeType": "YulTypedName", + "src": "33600:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "33732:22:18", + "nodeType": "YulBlock", + "src": "33732:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "33734:16:18", + "nodeType": "YulIdentifier", + "src": "33734:16:18" + }, + "nativeSrc": "33734:18:18", + "nodeType": "YulFunctionCall", + "src": "33734:18:18" + }, + "nativeSrc": "33734:18:18", + "nodeType": "YulExpressionStatement", + "src": "33734:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "33704:6:18", + "nodeType": "YulIdentifier", + "src": "33704:6:18" + }, + { + "kind": "number", + "nativeSrc": "33712:18:18", + "nodeType": "YulLiteral", + "src": "33712:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "33701:2:18", + "nodeType": "YulIdentifier", + "src": "33701:2:18" + }, + "nativeSrc": "33701:30:18", + "nodeType": "YulFunctionCall", + "src": "33701:30:18" + }, + "nativeSrc": "33698:56:18", + "nodeType": "YulIf", + "src": "33698:56:18" + }, + { + "nativeSrc": "33764:52:18", + "nodeType": "YulVariableDeclaration", + "src": "33764:52:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "33810:4:18", + "nodeType": "YulIdentifier", + "src": "33810:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "33804:5:18", + "nodeType": "YulIdentifier", + "src": "33804:5:18" + }, + "nativeSrc": "33804:11:18", + "nodeType": "YulFunctionCall", + "src": "33804:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "33778:25:18", + "nodeType": "YulIdentifier", + "src": "33778:25:18" + }, + "nativeSrc": "33778:38:18", + "nodeType": "YulFunctionCall", + "src": "33778:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "33768:6:18", + "nodeType": "YulTypedName", + "src": "33768:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "33909:4:18", + "nodeType": "YulIdentifier", + "src": "33909:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "33915:6:18", + "nodeType": "YulIdentifier", + "src": "33915:6:18" + }, + { + "name": "newLen", + "nativeSrc": "33923:6:18", + "nodeType": "YulIdentifier", + "src": "33923:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "33863:45:18", + "nodeType": "YulIdentifier", + "src": "33863:45:18" + }, + "nativeSrc": "33863:67:18", + "nodeType": "YulFunctionCall", + "src": "33863:67:18" + }, + "nativeSrc": "33863:67:18", + "nodeType": "YulExpressionStatement", + "src": "33863:67:18" + }, + { + "nativeSrc": "33940:18:18", + "nodeType": "YulVariableDeclaration", + "src": "33940:18:18", + "value": { + "kind": "number", + "nativeSrc": "33957:1:18", + "nodeType": "YulLiteral", + "src": "33957:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "33944:9:18", + "nodeType": "YulTypedName", + "src": "33944:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "33968:17:18", + "nodeType": "YulAssignment", + "src": "33968:17:18", + "value": { + "kind": "number", + "nativeSrc": "33981:4:18", + "nodeType": "YulLiteral", + "src": "33981:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "33968:9:18", + "nodeType": "YulIdentifier", + "src": "33968:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "34032:611:18", + "nodeType": "YulBlock", + "src": "34032:611:18", + "statements": [ + { + "nativeSrc": "34046:37:18", + "nodeType": "YulVariableDeclaration", + "src": "34046:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34065:6:18", + "nodeType": "YulIdentifier", + "src": "34065:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34077:4:18", + "nodeType": "YulLiteral", + "src": "34077:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34073:3:18", + "nodeType": "YulIdentifier", + "src": "34073:3:18" + }, + "nativeSrc": "34073:9:18", + "nodeType": "YulFunctionCall", + "src": "34073:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34061:3:18", + "nodeType": "YulIdentifier", + "src": "34061:3:18" + }, + "nativeSrc": "34061:22:18", + "nodeType": "YulFunctionCall", + "src": "34061:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "34050:7:18", + "nodeType": "YulTypedName", + "src": "34050:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34097:51:18", + "nodeType": "YulVariableDeclaration", + "src": "34097:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34143:4:18", + "nodeType": "YulIdentifier", + "src": "34143:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "34111:31:18", + "nodeType": "YulIdentifier", + "src": "34111:31:18" + }, + "nativeSrc": "34111:37:18", + "nodeType": "YulFunctionCall", + "src": "34111:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "34101:6:18", + "nodeType": "YulTypedName", + "src": "34101:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34161:10:18", + "nodeType": "YulVariableDeclaration", + "src": "34161:10:18", + "value": { + "kind": "number", + "nativeSrc": "34170:1:18", + "nodeType": "YulLiteral", + "src": "34170:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "34165:1:18", + "nodeType": "YulTypedName", + "src": "34165:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "34229:163:18", + "nodeType": "YulBlock", + "src": "34229:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "34254:6:18", + "nodeType": "YulIdentifier", + "src": "34254:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "34272:3:18", + "nodeType": "YulIdentifier", + "src": "34272:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "34277:9:18", + "nodeType": "YulIdentifier", + "src": "34277:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34268:3:18", + "nodeType": "YulIdentifier", + "src": "34268:3:18" + }, + "nativeSrc": "34268:19:18", + "nodeType": "YulFunctionCall", + "src": "34268:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34262:5:18", + "nodeType": "YulIdentifier", + "src": "34262:5:18" + }, + "nativeSrc": "34262:26:18", + "nodeType": "YulFunctionCall", + "src": "34262:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "34247:6:18", + "nodeType": "YulIdentifier", + "src": "34247:6:18" + }, + "nativeSrc": "34247:42:18", + "nodeType": "YulFunctionCall", + "src": "34247:42:18" + }, + "nativeSrc": "34247:42:18", + "nodeType": "YulExpressionStatement", + "src": "34247:42:18" + }, + { + "nativeSrc": "34306:24:18", + "nodeType": "YulAssignment", + "src": "34306:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "34320:6:18", + "nodeType": "YulIdentifier", + "src": "34320:6:18" + }, + { + "kind": "number", + "nativeSrc": "34328:1:18", + "nodeType": "YulLiteral", + "src": "34328:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34316:3:18", + "nodeType": "YulIdentifier", + "src": "34316:3:18" + }, + "nativeSrc": "34316:14:18", + "nodeType": "YulFunctionCall", + "src": "34316:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "34306:6:18", + "nodeType": "YulIdentifier", + "src": "34306:6:18" + } + ] + }, + { + "nativeSrc": "34347:31:18", + "nodeType": "YulAssignment", + "src": "34347:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "34364:9:18", + "nodeType": "YulIdentifier", + "src": "34364:9:18" + }, + { + "kind": "number", + "nativeSrc": "34375:2:18", + "nodeType": "YulLiteral", + "src": "34375:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34360:3:18", + "nodeType": "YulIdentifier", + "src": "34360:3:18" + }, + "nativeSrc": "34360:18:18", + "nodeType": "YulFunctionCall", + "src": "34360:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "34347:9:18", + "nodeType": "YulIdentifier", + "src": "34347:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "34195:1:18", + "nodeType": "YulIdentifier", + "src": "34195:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "34198:7:18", + "nodeType": "YulIdentifier", + "src": "34198:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "34192:2:18", + "nodeType": "YulIdentifier", + "src": "34192:2:18" + }, + "nativeSrc": "34192:14:18", + "nodeType": "YulFunctionCall", + "src": "34192:14:18" + }, + "nativeSrc": "34184:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "34207:21:18", + "nodeType": "YulBlock", + "src": "34207:21:18", + "statements": [ + { + "nativeSrc": "34209:17:18", + "nodeType": "YulAssignment", + "src": "34209:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "34218:1:18", + "nodeType": "YulIdentifier", + "src": "34218:1:18" + }, + { + "kind": "number", + "nativeSrc": "34221:4:18", + "nodeType": "YulLiteral", + "src": "34221:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34214:3:18", + "nodeType": "YulIdentifier", + "src": "34214:3:18" + }, + "nativeSrc": "34214:12:18", + "nodeType": "YulFunctionCall", + "src": "34214:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "34209:1:18", + "nodeType": "YulIdentifier", + "src": "34209:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "34188:3:18", + "nodeType": "YulBlock", + "src": "34188:3:18", + "statements": [] + }, + "src": "34184:208:18" + }, + { + "body": { + "nativeSrc": "34428:156:18", + "nodeType": "YulBlock", + "src": "34428:156:18", + "statements": [ + { + "nativeSrc": "34446:43:18", + "nodeType": "YulVariableDeclaration", + "src": "34446:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "34473:3:18", + "nodeType": "YulIdentifier", + "src": "34473:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "34478:9:18", + "nodeType": "YulIdentifier", + "src": "34478:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34469:3:18", + "nodeType": "YulIdentifier", + "src": "34469:3:18" + }, + "nativeSrc": "34469:19:18", + "nodeType": "YulFunctionCall", + "src": "34469:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34463:5:18", + "nodeType": "YulIdentifier", + "src": "34463:5:18" + }, + "nativeSrc": "34463:26:18", + "nodeType": "YulFunctionCall", + "src": "34463:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "34450:9:18", + "nodeType": "YulTypedName", + "src": "34450:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "34513:6:18", + "nodeType": "YulIdentifier", + "src": "34513:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "34540:9:18", + "nodeType": "YulIdentifier", + "src": "34540:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34555:6:18", + "nodeType": "YulIdentifier", + "src": "34555:6:18" + }, + { + "kind": "number", + "nativeSrc": "34563:4:18", + "nodeType": "YulLiteral", + "src": "34563:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34551:3:18", + "nodeType": "YulIdentifier", + "src": "34551:3:18" + }, + "nativeSrc": "34551:17:18", + "nodeType": "YulFunctionCall", + "src": "34551:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "34521:18:18", + "nodeType": "YulIdentifier", + "src": "34521:18:18" + }, + "nativeSrc": "34521:48:18", + "nodeType": "YulFunctionCall", + "src": "34521:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "34506:6:18", + "nodeType": "YulIdentifier", + "src": "34506:6:18" + }, + "nativeSrc": "34506:64:18", + "nodeType": "YulFunctionCall", + "src": "34506:64:18" + }, + "nativeSrc": "34506:64:18", + "nodeType": "YulExpressionStatement", + "src": "34506:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "34411:7:18", + "nodeType": "YulIdentifier", + "src": "34411:7:18" + }, + { + "name": "newLen", + "nativeSrc": "34420:6:18", + "nodeType": "YulIdentifier", + "src": "34420:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "34408:2:18", + "nodeType": "YulIdentifier", + "src": "34408:2:18" + }, + "nativeSrc": "34408:19:18", + "nodeType": "YulFunctionCall", + "src": "34408:19:18" + }, + "nativeSrc": "34405:179:18", + "nodeType": "YulIf", + "src": "34405:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34604:4:18", + "nodeType": "YulIdentifier", + "src": "34604:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34618:6:18", + "nodeType": "YulIdentifier", + "src": "34618:6:18" + }, + { + "kind": "number", + "nativeSrc": "34626:1:18", + "nodeType": "YulLiteral", + "src": "34626:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34614:3:18", + "nodeType": "YulIdentifier", + "src": "34614:3:18" + }, + "nativeSrc": "34614:14:18", + "nodeType": "YulFunctionCall", + "src": "34614:14:18" + }, + { + "kind": "number", + "nativeSrc": "34630:1:18", + "nodeType": "YulLiteral", + "src": "34630:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34610:3:18", + "nodeType": "YulIdentifier", + "src": "34610:3:18" + }, + "nativeSrc": "34610:22:18", + "nodeType": "YulFunctionCall", + "src": "34610:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "34597:6:18", + "nodeType": "YulIdentifier", + "src": "34597:6:18" + }, + "nativeSrc": "34597:36:18", + "nodeType": "YulFunctionCall", + "src": "34597:36:18" + }, + "nativeSrc": "34597:36:18", + "nodeType": "YulExpressionStatement", + "src": "34597:36:18" + } + ] + }, + "nativeSrc": "34025:618:18", + "nodeType": "YulCase", + "src": "34025:618:18", + "value": { + "kind": "number", + "nativeSrc": "34030:1:18", + "nodeType": "YulLiteral", + "src": "34030:1:18", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "34660:222:18", + "nodeType": "YulBlock", + "src": "34660:222:18", + "statements": [ + { + "nativeSrc": "34674:14:18", + "nodeType": "YulVariableDeclaration", + "src": "34674:14:18", + "value": { + "kind": "number", + "nativeSrc": "34687:1:18", + "nodeType": "YulLiteral", + "src": "34687:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "34678:5:18", + "nodeType": "YulTypedName", + "src": "34678:5:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "34711:67:18", + "nodeType": "YulBlock", + "src": "34711:67:18", + "statements": [ + { + "nativeSrc": "34729:35:18", + "nodeType": "YulAssignment", + "src": "34729:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "34748:3:18", + "nodeType": "YulIdentifier", + "src": "34748:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "34753:9:18", + "nodeType": "YulIdentifier", + "src": "34753:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34744:3:18", + "nodeType": "YulIdentifier", + "src": "34744:3:18" + }, + "nativeSrc": "34744:19:18", + "nodeType": "YulFunctionCall", + "src": "34744:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34738:5:18", + "nodeType": "YulIdentifier", + "src": "34738:5:18" + }, + "nativeSrc": "34738:26:18", + "nodeType": "YulFunctionCall", + "src": "34738:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "34729:5:18", + "nodeType": "YulIdentifier", + "src": "34729:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "34704:6:18", + "nodeType": "YulIdentifier", + "src": "34704:6:18" + }, + "nativeSrc": "34701:77:18", + "nodeType": "YulIf", + "src": "34701:77:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34798:4:18", + "nodeType": "YulIdentifier", + "src": "34798:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "34857:5:18", + "nodeType": "YulIdentifier", + "src": "34857:5:18" + }, + { + "name": "newLen", + "nativeSrc": "34864:6:18", + "nodeType": "YulIdentifier", + "src": "34864:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "34804:52:18", + "nodeType": "YulIdentifier", + "src": "34804:52:18" + }, + "nativeSrc": "34804:67:18", + "nodeType": "YulFunctionCall", + "src": "34804:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "34791:6:18", + "nodeType": "YulIdentifier", + "src": "34791:6:18" + }, + "nativeSrc": "34791:81:18", + "nodeType": "YulFunctionCall", + "src": "34791:81:18" + }, + "nativeSrc": "34791:81:18", + "nodeType": "YulExpressionStatement", + "src": "34791:81:18" + } + ] + }, + "nativeSrc": "34652:230:18", + "nodeType": "YulCase", + "src": "34652:230:18", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34005:6:18", + "nodeType": "YulIdentifier", + "src": "34005:6:18" + }, + { + "kind": "number", + "nativeSrc": "34013:2:18", + "nodeType": "YulLiteral", + "src": "34013:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "34002:2:18", + "nodeType": "YulIdentifier", + "src": "34002:2:18" + }, + "nativeSrc": "34002:14:18", + "nodeType": "YulFunctionCall", + "src": "34002:14:18" + }, + "nativeSrc": "33995:887:18", + "nodeType": "YulSwitch", + "src": "33995:887:18" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "33493:1395:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "33574:4:18", + "nodeType": "YulTypedName", + "src": "33574:4:18", + "type": "" + }, + { + "name": "src", + "nativeSrc": "33580:3:18", + "nodeType": "YulTypedName", + "src": "33580:3:18", + "type": "" + } + ], + "src": "33493:1395:18" + }, + { + "body": { + "nativeSrc": "34922:152:18", + "nodeType": "YulBlock", + "src": "34922:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34939:1:18", + "nodeType": "YulLiteral", + "src": "34939:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "34942:77:18", + "nodeType": "YulLiteral", + "src": "34942:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34932:6:18", + "nodeType": "YulIdentifier", + "src": "34932:6:18" + }, + "nativeSrc": "34932:88:18", + "nodeType": "YulFunctionCall", + "src": "34932:88:18" + }, + "nativeSrc": "34932:88:18", + "nodeType": "YulExpressionStatement", + "src": "34932:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35036:1:18", + "nodeType": "YulLiteral", + "src": "35036:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "35039:4:18", + "nodeType": "YulLiteral", + "src": "35039:4:18", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35029:6:18", + "nodeType": "YulIdentifier", + "src": "35029:6:18" + }, + "nativeSrc": "35029:15:18", + "nodeType": "YulFunctionCall", + "src": "35029:15:18" + }, + "nativeSrc": "35029:15:18", + "nodeType": "YulExpressionStatement", + "src": "35029:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35060:1:18", + "nodeType": "YulLiteral", + "src": "35060:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35063:4:18", + "nodeType": "YulLiteral", + "src": "35063:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "35053:6:18", + "nodeType": "YulIdentifier", + "src": "35053:6:18" + }, + "nativeSrc": "35053:15:18", + "nodeType": "YulFunctionCall", + "src": "35053:15:18" + }, + "nativeSrc": "35053:15:18", + "nodeType": "YulExpressionStatement", + "src": "35053:15:18" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "34894:180:18", + "nodeType": "YulFunctionDefinition", + "src": "34894:180:18" + }, + { + "body": { + "nativeSrc": "35124:147:18", + "nodeType": "YulBlock", + "src": "35124:147:18", + "statements": [ + { + "nativeSrc": "35134:25:18", + "nodeType": "YulAssignment", + "src": "35134:25:18", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "35157:1:18", + "nodeType": "YulIdentifier", + "src": "35157:1:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "35139:17:18", + "nodeType": "YulIdentifier", + "src": "35139:17:18" + }, + "nativeSrc": "35139:20:18", + "nodeType": "YulFunctionCall", + "src": "35139:20:18" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "35134:1:18", + "nodeType": "YulIdentifier", + "src": "35134:1:18" + } + ] + }, + { + "nativeSrc": "35168:25:18", + "nodeType": "YulAssignment", + "src": "35168:25:18", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "35191:1:18", + "nodeType": "YulIdentifier", + "src": "35191:1:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "35173:17:18", + "nodeType": "YulIdentifier", + "src": "35173:17:18" + }, + "nativeSrc": "35173:20:18", + "nodeType": "YulFunctionCall", + "src": "35173:20:18" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "35168:1:18", + "nodeType": "YulIdentifier", + "src": "35168:1:18" + } + ] + }, + { + "nativeSrc": "35202:16:18", + "nodeType": "YulAssignment", + "src": "35202:16:18", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "35213:1:18", + "nodeType": "YulIdentifier", + "src": "35213:1:18" + }, + { + "name": "y", + "nativeSrc": "35216:1:18", + "nodeType": "YulIdentifier", + "src": "35216:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35209:3:18", + "nodeType": "YulIdentifier", + "src": "35209:3:18" + }, + "nativeSrc": "35209:9:18", + "nodeType": "YulFunctionCall", + "src": "35209:9:18" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "35202:3:18", + "nodeType": "YulIdentifier", + "src": "35202:3:18" + } + ] + }, + { + "body": { + "nativeSrc": "35242:22:18", + "nodeType": "YulBlock", + "src": "35242:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "35244:16:18", + "nodeType": "YulIdentifier", + "src": "35244:16:18" + }, + "nativeSrc": "35244:18:18", + "nodeType": "YulFunctionCall", + "src": "35244:18:18" + }, + "nativeSrc": "35244:18:18", + "nodeType": "YulExpressionStatement", + "src": "35244:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "35234:1:18", + "nodeType": "YulIdentifier", + "src": "35234:1:18" + }, + { + "name": "sum", + "nativeSrc": "35237:3:18", + "nodeType": "YulIdentifier", + "src": "35237:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "35231:2:18", + "nodeType": "YulIdentifier", + "src": "35231:2:18" + }, + "nativeSrc": "35231:10:18", + "nodeType": "YulFunctionCall", + "src": "35231:10:18" + }, + "nativeSrc": "35228:36:18", + "nodeType": "YulIf", + "src": "35228:36:18" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "35080:191:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "35111:1:18", + "nodeType": "YulTypedName", + "src": "35111:1:18", + "type": "" + }, + { + "name": "y", + "nativeSrc": "35114:1:18", + "nodeType": "YulTypedName", + "src": "35114:1:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "35120:3:18", + "nodeType": "YulTypedName", + "src": "35120:3:18", + "type": "" + } + ], + "src": "35080:191:18" + }, + { + "body": { + "nativeSrc": "35375:124:18", + "nodeType": "YulBlock", + "src": "35375:124:18", + "statements": [ + { + "nativeSrc": "35385:26:18", + "nodeType": "YulAssignment", + "src": "35385:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35397:9:18", + "nodeType": "YulIdentifier", + "src": "35397:9:18" + }, + { + "kind": "number", + "nativeSrc": "35408:2:18", + "nodeType": "YulLiteral", + "src": "35408:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35393:3:18", + "nodeType": "YulIdentifier", + "src": "35393:3:18" + }, + "nativeSrc": "35393:18:18", + "nodeType": "YulFunctionCall", + "src": "35393:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "35385:4:18", + "nodeType": "YulIdentifier", + "src": "35385:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "35465:6:18", + "nodeType": "YulIdentifier", + "src": "35465:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35478:9:18", + "nodeType": "YulIdentifier", + "src": "35478:9:18" + }, + { + "kind": "number", + "nativeSrc": "35489:1:18", + "nodeType": "YulLiteral", + "src": "35489:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35474:3:18", + "nodeType": "YulIdentifier", + "src": "35474:3:18" + }, + "nativeSrc": "35474:17:18", + "nodeType": "YulFunctionCall", + "src": "35474:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "35421:43:18", + "nodeType": "YulIdentifier", + "src": "35421:43:18" + }, + "nativeSrc": "35421:71:18", + "nodeType": "YulFunctionCall", + "src": "35421:71:18" + }, + "nativeSrc": "35421:71:18", + "nodeType": "YulExpressionStatement", + "src": "35421:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "35277:222:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "35347:9:18", + "nodeType": "YulTypedName", + "src": "35347:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "35359:6:18", + "nodeType": "YulTypedName", + "src": "35359:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "35370:4:18", + "nodeType": "YulTypedName", + "src": "35370:4:18", + "type": "" + } + ], + "src": "35277:222:18" + }, + { + "body": { + "nativeSrc": "35533:152:18", + "nodeType": "YulBlock", + "src": "35533:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35550:1:18", + "nodeType": "YulLiteral", + "src": "35550:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35553:77:18", + "nodeType": "YulLiteral", + "src": "35553:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35543:6:18", + "nodeType": "YulIdentifier", + "src": "35543:6:18" + }, + "nativeSrc": "35543:88:18", + "nodeType": "YulFunctionCall", + "src": "35543:88:18" + }, + "nativeSrc": "35543:88:18", + "nodeType": "YulExpressionStatement", + "src": "35543:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35647:1:18", + "nodeType": "YulLiteral", + "src": "35647:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "35650:4:18", + "nodeType": "YulLiteral", + "src": "35650:4:18", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35640:6:18", + "nodeType": "YulIdentifier", + "src": "35640:6:18" + }, + "nativeSrc": "35640:15:18", + "nodeType": "YulFunctionCall", + "src": "35640:15:18" + }, + "nativeSrc": "35640:15:18", + "nodeType": "YulExpressionStatement", + "src": "35640:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35671:1:18", + "nodeType": "YulLiteral", + "src": "35671:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35674:4:18", + "nodeType": "YulLiteral", + "src": "35674:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "35664:6:18", + "nodeType": "YulIdentifier", + "src": "35664:6:18" + }, + "nativeSrc": "35664:15:18", + "nodeType": "YulFunctionCall", + "src": "35664:15:18" + }, + "nativeSrc": "35664:15:18", + "nodeType": "YulExpressionStatement", + "src": "35664:15:18" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "35505:180:18", + "nodeType": "YulFunctionDefinition", + "src": "35505:180:18" + }, + { + "body": { + "nativeSrc": "35797:63:18", + "nodeType": "YulBlock", + "src": "35797:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "35819:6:18", + "nodeType": "YulIdentifier", + "src": "35819:6:18" + }, + { + "kind": "number", + "nativeSrc": "35827:1:18", + "nodeType": "YulLiteral", + "src": "35827:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35815:3:18", + "nodeType": "YulIdentifier", + "src": "35815:3:18" + }, + "nativeSrc": "35815:14:18", + "nodeType": "YulFunctionCall", + "src": "35815:14:18" + }, + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "35831:21:18", + "nodeType": "YulLiteral", + "src": "35831:21:18", + "type": "", + "value": "URI cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35808:6:18", + "nodeType": "YulIdentifier", + "src": "35808:6:18" + }, + "nativeSrc": "35808:45:18", + "nodeType": "YulFunctionCall", + "src": "35808:45:18" + }, + "nativeSrc": "35808:45:18", + "nodeType": "YulExpressionStatement", + "src": "35808:45:18" + } + ] + }, + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "35691:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "35789:6:18", + "nodeType": "YulTypedName", + "src": "35789:6:18", + "type": "" + } + ], + "src": "35691:169:18" + }, + { + "body": { + "nativeSrc": "36012:220:18", + "nodeType": "YulBlock", + "src": "36012:220:18", + "statements": [ + { + "nativeSrc": "36022:74:18", + "nodeType": "YulAssignment", + "src": "36022:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "36088:3:18", + "nodeType": "YulIdentifier", + "src": "36088:3:18" + }, + { + "kind": "number", + "nativeSrc": "36093:2:18", + "nodeType": "YulLiteral", + "src": "36093:2:18", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "36029:58:18", + "nodeType": "YulIdentifier", + "src": "36029:58:18" + }, + "nativeSrc": "36029:67:18", + "nodeType": "YulFunctionCall", + "src": "36029:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "36022:3:18", + "nodeType": "YulIdentifier", + "src": "36022:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "36194:3:18", + "nodeType": "YulIdentifier", + "src": "36194:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "36105:88:18", + "nodeType": "YulIdentifier", + "src": "36105:88:18" + }, + "nativeSrc": "36105:93:18", + "nodeType": "YulFunctionCall", + "src": "36105:93:18" + }, + "nativeSrc": "36105:93:18", + "nodeType": "YulExpressionStatement", + "src": "36105:93:18" + }, + { + "nativeSrc": "36207:19:18", + "nodeType": "YulAssignment", + "src": "36207:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "36218:3:18", + "nodeType": "YulIdentifier", + "src": "36218:3:18" + }, + { + "kind": "number", + "nativeSrc": "36223:2:18", + "nodeType": "YulLiteral", + "src": "36223:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36214:3:18", + "nodeType": "YulIdentifier", + "src": "36214:3:18" + }, + "nativeSrc": "36214:12:18", + "nodeType": "YulFunctionCall", + "src": "36214:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "36207:3:18", + "nodeType": "YulIdentifier", + "src": "36207:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "35866:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "36000:3:18", + "nodeType": "YulTypedName", + "src": "36000:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "36008:3:18", + "nodeType": "YulTypedName", + "src": "36008:3:18", + "type": "" + } + ], + "src": "35866:366:18" + }, + { + "body": { + "nativeSrc": "36409:248:18", + "nodeType": "YulBlock", + "src": "36409:248:18", + "statements": [ + { + "nativeSrc": "36419:26:18", + "nodeType": "YulAssignment", + "src": "36419:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36431:9:18", + "nodeType": "YulIdentifier", + "src": "36431:9:18" + }, + { + "kind": "number", + "nativeSrc": "36442:2:18", + "nodeType": "YulLiteral", + "src": "36442:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36427:3:18", + "nodeType": "YulIdentifier", + "src": "36427:3:18" + }, + "nativeSrc": "36427:18:18", + "nodeType": "YulFunctionCall", + "src": "36427:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36419:4:18", + "nodeType": "YulIdentifier", + "src": "36419:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36466:9:18", + "nodeType": "YulIdentifier", + "src": "36466:9:18" + }, + { + "kind": "number", + "nativeSrc": "36477:1:18", + "nodeType": "YulLiteral", + "src": "36477:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36462:3:18", + "nodeType": "YulIdentifier", + "src": "36462:3:18" + }, + "nativeSrc": "36462:17:18", + "nodeType": "YulFunctionCall", + "src": "36462:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "36485:4:18", + "nodeType": "YulIdentifier", + "src": "36485:4:18" + }, + { + "name": "headStart", + "nativeSrc": "36491:9:18", + "nodeType": "YulIdentifier", + "src": "36491:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36481:3:18", + "nodeType": "YulIdentifier", + "src": "36481:3:18" + }, + "nativeSrc": "36481:20:18", + "nodeType": "YulFunctionCall", + "src": "36481:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36455:6:18", + "nodeType": "YulIdentifier", + "src": "36455:6:18" + }, + "nativeSrc": "36455:47:18", + "nodeType": "YulFunctionCall", + "src": "36455:47:18" + }, + "nativeSrc": "36455:47:18", + "nodeType": "YulExpressionStatement", + "src": "36455:47:18" + }, + { + "nativeSrc": "36511:139:18", + "nodeType": "YulAssignment", + "src": "36511:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "36645:4:18", + "nodeType": "YulIdentifier", + "src": "36645:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "36519:124:18", + "nodeType": "YulIdentifier", + "src": "36519:124:18" + }, + "nativeSrc": "36519:131:18", + "nodeType": "YulFunctionCall", + "src": "36519:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36511:4:18", + "nodeType": "YulIdentifier", + "src": "36511:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "36238:419:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36389:9:18", + "nodeType": "YulTypedName", + "src": "36389:9:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36404:4:18", + "nodeType": "YulTypedName", + "src": "36404:4:18", + "type": "" + } + ], + "src": "36238:419:18" + }, + { + "body": { + "nativeSrc": "36726:52:18", + "nodeType": "YulBlock", + "src": "36726:52:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "36743:3:18", + "nodeType": "YulIdentifier", + "src": "36743:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "36765:5:18", + "nodeType": "YulIdentifier", + "src": "36765:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "36748:16:18", + "nodeType": "YulIdentifier", + "src": "36748:16:18" + }, + "nativeSrc": "36748:23:18", + "nodeType": "YulFunctionCall", + "src": "36748:23:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36736:6:18", + "nodeType": "YulIdentifier", + "src": "36736:6:18" + }, + "nativeSrc": "36736:36:18", + "nodeType": "YulFunctionCall", + "src": "36736:36:18" + }, + "nativeSrc": "36736:36:18", + "nodeType": "YulExpressionStatement", + "src": "36736:36:18" + } + ] + }, + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "36663:115:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "36714:5:18", + "nodeType": "YulTypedName", + "src": "36714:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "36721:3:18", + "nodeType": "YulTypedName", + "src": "36721:3:18", + "type": "" + } + ], + "src": "36663:115:18" + }, + { + "body": { + "nativeSrc": "36880:122:18", + "nodeType": "YulBlock", + "src": "36880:122:18", + "statements": [ + { + "nativeSrc": "36890:26:18", + "nodeType": "YulAssignment", + "src": "36890:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36902:9:18", + "nodeType": "YulIdentifier", + "src": "36902:9:18" + }, + { + "kind": "number", + "nativeSrc": "36913:2:18", + "nodeType": "YulLiteral", + "src": "36913:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36898:3:18", + "nodeType": "YulIdentifier", + "src": "36898:3:18" + }, + "nativeSrc": "36898:18:18", + "nodeType": "YulFunctionCall", + "src": "36898:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36890:4:18", + "nodeType": "YulIdentifier", + "src": "36890:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36968:6:18", + "nodeType": "YulIdentifier", + "src": "36968:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36981:9:18", + "nodeType": "YulIdentifier", + "src": "36981:9:18" + }, + { + "kind": "number", + "nativeSrc": "36992:1:18", + "nodeType": "YulLiteral", + "src": "36992:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36977:3:18", + "nodeType": "YulIdentifier", + "src": "36977:3:18" + }, + "nativeSrc": "36977:17:18", + "nodeType": "YulFunctionCall", + "src": "36977:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "36926:41:18", + "nodeType": "YulIdentifier", + "src": "36926:41:18" + }, + "nativeSrc": "36926:69:18", + "nodeType": "YulFunctionCall", + "src": "36926:69:18" + }, + "nativeSrc": "36926:69:18", + "nodeType": "YulExpressionStatement", + "src": "36926:69:18" + } + ] + }, + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nativeSrc": "36784:218:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36852:9:18", + "nodeType": "YulTypedName", + "src": "36852:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36864:6:18", + "nodeType": "YulTypedName", + "src": "36864:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36875:4:18", + "nodeType": "YulTypedName", + "src": "36875:4:18", + "type": "" + } + ], + "src": "36784:218:18" + }, + { + "body": { + "nativeSrc": "37134:206:18", + "nodeType": "YulBlock", + "src": "37134:206:18", + "statements": [ + { + "nativeSrc": "37144:26:18", + "nodeType": "YulAssignment", + "src": "37144:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37156:9:18", + "nodeType": "YulIdentifier", + "src": "37156:9:18" + }, + { + "kind": "number", + "nativeSrc": "37167:2:18", + "nodeType": "YulLiteral", + "src": "37167:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37152:3:18", + "nodeType": "YulIdentifier", + "src": "37152:3:18" + }, + "nativeSrc": "37152:18:18", + "nodeType": "YulFunctionCall", + "src": "37152:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37144:4:18", + "nodeType": "YulIdentifier", + "src": "37144:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "37224:6:18", + "nodeType": "YulIdentifier", + "src": "37224:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37237:9:18", + "nodeType": "YulIdentifier", + "src": "37237:9:18" + }, + { + "kind": "number", + "nativeSrc": "37248:1:18", + "nodeType": "YulLiteral", + "src": "37248:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37233:3:18", + "nodeType": "YulIdentifier", + "src": "37233:3:18" + }, + "nativeSrc": "37233:17:18", + "nodeType": "YulFunctionCall", + "src": "37233:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "37180:43:18", + "nodeType": "YulIdentifier", + "src": "37180:43:18" + }, + "nativeSrc": "37180:71:18", + "nodeType": "YulFunctionCall", + "src": "37180:71:18" + }, + "nativeSrc": "37180:71:18", + "nodeType": "YulExpressionStatement", + "src": "37180:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "37305:6:18", + "nodeType": "YulIdentifier", + "src": "37305:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37318:9:18", + "nodeType": "YulIdentifier", + "src": "37318:9:18" + }, + { + "kind": "number", + "nativeSrc": "37329:2:18", + "nodeType": "YulLiteral", + "src": "37329:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37314:3:18", + "nodeType": "YulIdentifier", + "src": "37314:3:18" + }, + "nativeSrc": "37314:18:18", + "nodeType": "YulFunctionCall", + "src": "37314:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "37261:43:18", + "nodeType": "YulIdentifier", + "src": "37261:43:18" + }, + "nativeSrc": "37261:72:18", + "nodeType": "YulFunctionCall", + "src": "37261:72:18" + }, + "nativeSrc": "37261:72:18", + "nodeType": "YulExpressionStatement", + "src": "37261:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "37008:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37098:9:18", + "nodeType": "YulTypedName", + "src": "37098:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "37110:6:18", + "nodeType": "YulTypedName", + "src": "37110:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "37118:6:18", + "nodeType": "YulTypedName", + "src": "37118:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37129:4:18", + "nodeType": "YulTypedName", + "src": "37129:4:18", + "type": "" + } + ], + "src": "37008:332:18" + }, + { + "body": { + "nativeSrc": "37528:371:18", + "nodeType": "YulBlock", + "src": "37528:371:18", + "statements": [ + { + "nativeSrc": "37538:27:18", + "nodeType": "YulAssignment", + "src": "37538:27:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37550:9:18", + "nodeType": "YulIdentifier", + "src": "37550:9:18" + }, + { + "kind": "number", + "nativeSrc": "37561:3:18", + "nodeType": "YulLiteral", + "src": "37561:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37546:3:18", + "nodeType": "YulIdentifier", + "src": "37546:3:18" + }, + "nativeSrc": "37546:19:18", + "nodeType": "YulFunctionCall", + "src": "37546:19:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37538:4:18", + "nodeType": "YulIdentifier", + "src": "37538:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "37619:6:18", + "nodeType": "YulIdentifier", + "src": "37619:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37632:9:18", + "nodeType": "YulIdentifier", + "src": "37632:9:18" + }, + { + "kind": "number", + "nativeSrc": "37643:1:18", + "nodeType": "YulLiteral", + "src": "37643:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37628:3:18", + "nodeType": "YulIdentifier", + "src": "37628:3:18" + }, + "nativeSrc": "37628:17:18", + "nodeType": "YulFunctionCall", + "src": "37628:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "37575:43:18", + "nodeType": "YulIdentifier", + "src": "37575:43:18" + }, + "nativeSrc": "37575:71:18", + "nodeType": "YulFunctionCall", + "src": "37575:71:18" + }, + "nativeSrc": "37575:71:18", + "nodeType": "YulExpressionStatement", + "src": "37575:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "37700:6:18", + "nodeType": "YulIdentifier", + "src": "37700:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37713:9:18", + "nodeType": "YulIdentifier", + "src": "37713:9:18" + }, + { + "kind": "number", + "nativeSrc": "37724:2:18", + "nodeType": "YulLiteral", + "src": "37724:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37709:3:18", + "nodeType": "YulIdentifier", + "src": "37709:3:18" + }, + "nativeSrc": "37709:18:18", + "nodeType": "YulFunctionCall", + "src": "37709:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "37656:43:18", + "nodeType": "YulIdentifier", + "src": "37656:43:18" + }, + "nativeSrc": "37656:72:18", + "nodeType": "YulFunctionCall", + "src": "37656:72:18" + }, + "nativeSrc": "37656:72:18", + "nodeType": "YulExpressionStatement", + "src": "37656:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "37782:6:18", + "nodeType": "YulIdentifier", + "src": "37782:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37795:9:18", + "nodeType": "YulIdentifier", + "src": "37795:9:18" + }, + { + "kind": "number", + "nativeSrc": "37806:2:18", + "nodeType": "YulLiteral", + "src": "37806:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37791:3:18", + "nodeType": "YulIdentifier", + "src": "37791:3:18" + }, + "nativeSrc": "37791:18:18", + "nodeType": "YulFunctionCall", + "src": "37791:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "37738:43:18", + "nodeType": "YulIdentifier", + "src": "37738:43:18" + }, + "nativeSrc": "37738:72:18", + "nodeType": "YulFunctionCall", + "src": "37738:72:18" + }, + "nativeSrc": "37738:72:18", + "nodeType": "YulExpressionStatement", + "src": "37738:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "37864:6:18", + "nodeType": "YulIdentifier", + "src": "37864:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37877:9:18", + "nodeType": "YulIdentifier", + "src": "37877:9:18" + }, + { + "kind": "number", + "nativeSrc": "37888:2:18", + "nodeType": "YulLiteral", + "src": "37888:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37873:3:18", + "nodeType": "YulIdentifier", + "src": "37873:3:18" + }, + "nativeSrc": "37873:18:18", + "nodeType": "YulFunctionCall", + "src": "37873:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "37820:43:18", + "nodeType": "YulIdentifier", + "src": "37820:43:18" + }, + "nativeSrc": "37820:72:18", + "nodeType": "YulFunctionCall", + "src": "37820:72:18" + }, + "nativeSrc": "37820:72:18", + "nodeType": "YulExpressionStatement", + "src": "37820:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "37346:553:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37476:9:18", + "nodeType": "YulTypedName", + "src": "37476:9:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "37488:6:18", + "nodeType": "YulTypedName", + "src": "37488:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "37496:6:18", + "nodeType": "YulTypedName", + "src": "37496:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "37504:6:18", + "nodeType": "YulTypedName", + "src": "37504:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "37512:6:18", + "nodeType": "YulTypedName", + "src": "37512:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37523:4:18", + "nodeType": "YulTypedName", + "src": "37523:4:18", + "type": "" + } + ], + "src": "37346:553:18" + }, + { + "body": { + "nativeSrc": "38131:408:18", + "nodeType": "YulBlock", + "src": "38131:408:18", + "statements": [ + { + "nativeSrc": "38141:26:18", + "nodeType": "YulAssignment", + "src": "38141:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38153:9:18", + "nodeType": "YulIdentifier", + "src": "38153:9:18" + }, + { + "kind": "number", + "nativeSrc": "38164:2:18", + "nodeType": "YulLiteral", + "src": "38164:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38149:3:18", + "nodeType": "YulIdentifier", + "src": "38149:3:18" + }, + "nativeSrc": "38149:18:18", + "nodeType": "YulFunctionCall", + "src": "38149:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38141:4:18", + "nodeType": "YulIdentifier", + "src": "38141:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38188:9:18", + "nodeType": "YulIdentifier", + "src": "38188:9:18" + }, + { + "kind": "number", + "nativeSrc": "38199:1:18", + "nodeType": "YulLiteral", + "src": "38199:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38184:3:18", + "nodeType": "YulIdentifier", + "src": "38184:3:18" + }, + "nativeSrc": "38184:17:18", + "nodeType": "YulFunctionCall", + "src": "38184:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "38207:4:18", + "nodeType": "YulIdentifier", + "src": "38207:4:18" + }, + { + "name": "headStart", + "nativeSrc": "38213:9:18", + "nodeType": "YulIdentifier", + "src": "38213:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38203:3:18", + "nodeType": "YulIdentifier", + "src": "38203:3:18" + }, + "nativeSrc": "38203:20:18", + "nodeType": "YulFunctionCall", + "src": "38203:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38177:6:18", + "nodeType": "YulIdentifier", + "src": "38177:6:18" + }, + "nativeSrc": "38177:47:18", + "nodeType": "YulFunctionCall", + "src": "38177:47:18" + }, + "nativeSrc": "38177:47:18", + "nodeType": "YulExpressionStatement", + "src": "38177:47:18" + }, + { + "nativeSrc": "38233:116:18", + "nodeType": "YulAssignment", + "src": "38233:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38335:6:18", + "nodeType": "YulIdentifier", + "src": "38335:6:18" + }, + { + "name": "tail", + "nativeSrc": "38344:4:18", + "nodeType": "YulIdentifier", + "src": "38344:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "38241:93:18", + "nodeType": "YulIdentifier", + "src": "38241:93:18" + }, + "nativeSrc": "38241:108:18", + "nodeType": "YulFunctionCall", + "src": "38241:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38233:4:18", + "nodeType": "YulIdentifier", + "src": "38233:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38370:9:18", + "nodeType": "YulIdentifier", + "src": "38370:9:18" + }, + { + "kind": "number", + "nativeSrc": "38381:2:18", + "nodeType": "YulLiteral", + "src": "38381:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38366:3:18", + "nodeType": "YulIdentifier", + "src": "38366:3:18" + }, + "nativeSrc": "38366:18:18", + "nodeType": "YulFunctionCall", + "src": "38366:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "38390:4:18", + "nodeType": "YulIdentifier", + "src": "38390:4:18" + }, + { + "name": "headStart", + "nativeSrc": "38396:9:18", + "nodeType": "YulIdentifier", + "src": "38396:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38386:3:18", + "nodeType": "YulIdentifier", + "src": "38386:3:18" + }, + "nativeSrc": "38386:20:18", + "nodeType": "YulFunctionCall", + "src": "38386:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38359:6:18", + "nodeType": "YulIdentifier", + "src": "38359:6:18" + }, + "nativeSrc": "38359:48:18", + "nodeType": "YulFunctionCall", + "src": "38359:48:18" + }, + "nativeSrc": "38359:48:18", + "nodeType": "YulExpressionStatement", + "src": "38359:48:18" + }, + { + "nativeSrc": "38416:116:18", + "nodeType": "YulAssignment", + "src": "38416:116:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38518:6:18", + "nodeType": "YulIdentifier", + "src": "38518:6:18" + }, + { + "name": "tail", + "nativeSrc": "38527:4:18", + "nodeType": "YulIdentifier", + "src": "38527:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "38424:93:18", + "nodeType": "YulIdentifier", + "src": "38424:93:18" + }, + "nativeSrc": "38424:108:18", + "nodeType": "YulFunctionCall", + "src": "38424:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38416:4:18", + "nodeType": "YulIdentifier", + "src": "38416:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "37905:634:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38095:9:18", + "nodeType": "YulTypedName", + "src": "38095:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38107:6:18", + "nodeType": "YulTypedName", + "src": "38107:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38115:6:18", + "nodeType": "YulTypedName", + "src": "38115:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38126:4:18", + "nodeType": "YulTypedName", + "src": "38126:4:18", + "type": "" + } + ], + "src": "37905:634:18" + }, + { + "body": { + "nativeSrc": "38603:40:18", + "nodeType": "YulBlock", + "src": "38603:40:18", + "statements": [ + { + "nativeSrc": "38614:22:18", + "nodeType": "YulAssignment", + "src": "38614:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "38630:5:18", + "nodeType": "YulIdentifier", + "src": "38630:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "38624:5:18", + "nodeType": "YulIdentifier", + "src": "38624:5:18" + }, + "nativeSrc": "38624:12:18", + "nodeType": "YulFunctionCall", + "src": "38624:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "38614:6:18", + "nodeType": "YulIdentifier", + "src": "38614:6:18" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "38545:98:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "38586:5:18", + "nodeType": "YulTypedName", + "src": "38586:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "38596:6:18", + "nodeType": "YulTypedName", + "src": "38596:6:18", + "type": "" + } + ], + "src": "38545:98:18" + }, + { + "body": { + "nativeSrc": "38744:73:18", + "nodeType": "YulBlock", + "src": "38744:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38761:3:18", + "nodeType": "YulIdentifier", + "src": "38761:3:18" + }, + { + "name": "length", + "nativeSrc": "38766:6:18", + "nodeType": "YulIdentifier", + "src": "38766:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38754:6:18", + "nodeType": "YulIdentifier", + "src": "38754:6:18" + }, + "nativeSrc": "38754:19:18", + "nodeType": "YulFunctionCall", + "src": "38754:19:18" + }, + "nativeSrc": "38754:19:18", + "nodeType": "YulExpressionStatement", + "src": "38754:19:18" + }, + { + "nativeSrc": "38782:29:18", + "nodeType": "YulAssignment", + "src": "38782:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38801:3:18", + "nodeType": "YulIdentifier", + "src": "38801:3:18" + }, + { + "kind": "number", + "nativeSrc": "38806:4:18", + "nodeType": "YulLiteral", + "src": "38806:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38797:3:18", + "nodeType": "YulIdentifier", + "src": "38797:3:18" + }, + "nativeSrc": "38797:14:18", + "nodeType": "YulFunctionCall", + "src": "38797:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "38782:11:18", + "nodeType": "YulIdentifier", + "src": "38782:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "38649:168:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "38716:3:18", + "nodeType": "YulTypedName", + "src": "38716:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "38721:6:18", + "nodeType": "YulTypedName", + "src": "38721:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "38732:11:18", + "nodeType": "YulTypedName", + "src": "38732:11:18", + "type": "" + } + ], + "src": "38649:168:18" + }, + { + "body": { + "nativeSrc": "38913:283:18", + "nodeType": "YulBlock", + "src": "38913:283:18", + "statements": [ + { + "nativeSrc": "38923:52:18", + "nodeType": "YulVariableDeclaration", + "src": "38923:52:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "38969:5:18", + "nodeType": "YulIdentifier", + "src": "38969:5:18" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "38937:31:18", + "nodeType": "YulIdentifier", + "src": "38937:31:18" + }, + "nativeSrc": "38937:38:18", + "nodeType": "YulFunctionCall", + "src": "38937:38:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "38927:6:18", + "nodeType": "YulTypedName", + "src": "38927:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "38984:77:18", + "nodeType": "YulAssignment", + "src": "38984:77:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39049:3:18", + "nodeType": "YulIdentifier", + "src": "39049:3:18" + }, + { + "name": "length", + "nativeSrc": "39054:6:18", + "nodeType": "YulIdentifier", + "src": "39054:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "38991:57:18", + "nodeType": "YulIdentifier", + "src": "38991:57:18" + }, + "nativeSrc": "38991:70:18", + "nodeType": "YulFunctionCall", + "src": "38991:70:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "38984:3:18", + "nodeType": "YulIdentifier", + "src": "38984:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "39109:5:18", + "nodeType": "YulIdentifier", + "src": "39109:5:18" + }, + { + "kind": "number", + "nativeSrc": "39116:4:18", + "nodeType": "YulLiteral", + "src": "39116:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39105:3:18", + "nodeType": "YulIdentifier", + "src": "39105:3:18" + }, + "nativeSrc": "39105:16:18", + "nodeType": "YulFunctionCall", + "src": "39105:16:18" + }, + { + "name": "pos", + "nativeSrc": "39123:3:18", + "nodeType": "YulIdentifier", + "src": "39123:3:18" + }, + { + "name": "length", + "nativeSrc": "39128:6:18", + "nodeType": "YulIdentifier", + "src": "39128:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "39070:34:18", + "nodeType": "YulIdentifier", + "src": "39070:34:18" + }, + "nativeSrc": "39070:65:18", + "nodeType": "YulFunctionCall", + "src": "39070:65:18" + }, + "nativeSrc": "39070:65:18", + "nodeType": "YulExpressionStatement", + "src": "39070:65:18" + }, + { + "nativeSrc": "39144:46:18", + "nodeType": "YulAssignment", + "src": "39144:46:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39155:3:18", + "nodeType": "YulIdentifier", + "src": "39155:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "39182:6:18", + "nodeType": "YulIdentifier", + "src": "39182:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "39160:21:18", + "nodeType": "YulIdentifier", + "src": "39160:21:18" + }, + "nativeSrc": "39160:29:18", + "nodeType": "YulFunctionCall", + "src": "39160:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39151:3:18", + "nodeType": "YulIdentifier", + "src": "39151:3:18" + }, + "nativeSrc": "39151:39:18", + "nodeType": "YulFunctionCall", + "src": "39151:39:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "39144:3:18", + "nodeType": "YulIdentifier", + "src": "39144:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "38823:373:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "38894:5:18", + "nodeType": "YulTypedName", + "src": "38894:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "38901:3:18", + "nodeType": "YulTypedName", + "src": "38901:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "38909:3:18", + "nodeType": "YulTypedName", + "src": "38909:3:18", + "type": "" + } + ], + "src": "38823:373:18" + }, + { + "body": { + "nativeSrc": "39430:523:18", + "nodeType": "YulBlock", + "src": "39430:523:18", + "statements": [ + { + "nativeSrc": "39440:27:18", + "nodeType": "YulAssignment", + "src": "39440:27:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39452:9:18", + "nodeType": "YulIdentifier", + "src": "39452:9:18" + }, + { + "kind": "number", + "nativeSrc": "39463:3:18", + "nodeType": "YulLiteral", + "src": "39463:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39448:3:18", + "nodeType": "YulIdentifier", + "src": "39448:3:18" + }, + "nativeSrc": "39448:19:18", + "nodeType": "YulFunctionCall", + "src": "39448:19:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39440:4:18", + "nodeType": "YulIdentifier", + "src": "39440:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39521:6:18", + "nodeType": "YulIdentifier", + "src": "39521:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39534:9:18", + "nodeType": "YulIdentifier", + "src": "39534:9:18" + }, + { + "kind": "number", + "nativeSrc": "39545:1:18", + "nodeType": "YulLiteral", + "src": "39545:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39530:3:18", + "nodeType": "YulIdentifier", + "src": "39530:3:18" + }, + "nativeSrc": "39530:17:18", + "nodeType": "YulFunctionCall", + "src": "39530:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "39477:43:18", + "nodeType": "YulIdentifier", + "src": "39477:43:18" + }, + "nativeSrc": "39477:71:18", + "nodeType": "YulFunctionCall", + "src": "39477:71:18" + }, + "nativeSrc": "39477:71:18", + "nodeType": "YulExpressionStatement", + "src": "39477:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39602:6:18", + "nodeType": "YulIdentifier", + "src": "39602:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39615:9:18", + "nodeType": "YulIdentifier", + "src": "39615:9:18" + }, + { + "kind": "number", + "nativeSrc": "39626:2:18", + "nodeType": "YulLiteral", + "src": "39626:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39611:3:18", + "nodeType": "YulIdentifier", + "src": "39611:3:18" + }, + "nativeSrc": "39611:18:18", + "nodeType": "YulFunctionCall", + "src": "39611:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "39558:43:18", + "nodeType": "YulIdentifier", + "src": "39558:43:18" + }, + "nativeSrc": "39558:72:18", + "nodeType": "YulFunctionCall", + "src": "39558:72:18" + }, + "nativeSrc": "39558:72:18", + "nodeType": "YulExpressionStatement", + "src": "39558:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "39684:6:18", + "nodeType": "YulIdentifier", + "src": "39684:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39697:9:18", + "nodeType": "YulIdentifier", + "src": "39697:9:18" + }, + { + "kind": "number", + "nativeSrc": "39708:2:18", + "nodeType": "YulLiteral", + "src": "39708:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39693:3:18", + "nodeType": "YulIdentifier", + "src": "39693:3:18" + }, + "nativeSrc": "39693:18:18", + "nodeType": "YulFunctionCall", + "src": "39693:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "39640:43:18", + "nodeType": "YulIdentifier", + "src": "39640:43:18" + }, + "nativeSrc": "39640:72:18", + "nodeType": "YulFunctionCall", + "src": "39640:72:18" + }, + "nativeSrc": "39640:72:18", + "nodeType": "YulExpressionStatement", + "src": "39640:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "39766:6:18", + "nodeType": "YulIdentifier", + "src": "39766:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39779:9:18", + "nodeType": "YulIdentifier", + "src": "39779:9:18" + }, + { + "kind": "number", + "nativeSrc": "39790:2:18", + "nodeType": "YulLiteral", + "src": "39790:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39775:3:18", + "nodeType": "YulIdentifier", + "src": "39775:3:18" + }, + "nativeSrc": "39775:18:18", + "nodeType": "YulFunctionCall", + "src": "39775:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "39722:43:18", + "nodeType": "YulIdentifier", + "src": "39722:43:18" + }, + "nativeSrc": "39722:72:18", + "nodeType": "YulFunctionCall", + "src": "39722:72:18" + }, + "nativeSrc": "39722:72:18", + "nodeType": "YulExpressionStatement", + "src": "39722:72:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39815:9:18", + "nodeType": "YulIdentifier", + "src": "39815:9:18" + }, + { + "kind": "number", + "nativeSrc": "39826:3:18", + "nodeType": "YulLiteral", + "src": "39826:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39811:3:18", + "nodeType": "YulIdentifier", + "src": "39811:3:18" + }, + "nativeSrc": "39811:19:18", + "nodeType": "YulFunctionCall", + "src": "39811:19:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39836:4:18", + "nodeType": "YulIdentifier", + "src": "39836:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39842:9:18", + "nodeType": "YulIdentifier", + "src": "39842:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39832:3:18", + "nodeType": "YulIdentifier", + "src": "39832:3:18" + }, + "nativeSrc": "39832:20:18", + "nodeType": "YulFunctionCall", + "src": "39832:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39804:6:18", + "nodeType": "YulIdentifier", + "src": "39804:6:18" + }, + "nativeSrc": "39804:49:18", + "nodeType": "YulFunctionCall", + "src": "39804:49:18" + }, + "nativeSrc": "39804:49:18", + "nodeType": "YulExpressionStatement", + "src": "39804:49:18" + }, + { + "nativeSrc": "39862:84:18", + "nodeType": "YulAssignment", + "src": "39862:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "39932:6:18", + "nodeType": "YulIdentifier", + "src": "39932:6:18" + }, + { + "name": "tail", + "nativeSrc": "39941:4:18", + "nodeType": "YulIdentifier", + "src": "39941:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39870:61:18", + "nodeType": "YulIdentifier", + "src": "39870:61:18" + }, + "nativeSrc": "39870:76:18", + "nodeType": "YulFunctionCall", + "src": "39870:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39862:4:18", + "nodeType": "YulIdentifier", + "src": "39862:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "39202:751:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39370:9:18", + "nodeType": "YulTypedName", + "src": "39370:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "39382:6:18", + "nodeType": "YulTypedName", + "src": "39382:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "39390:6:18", + "nodeType": "YulTypedName", + "src": "39390:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "39398:6:18", + "nodeType": "YulTypedName", + "src": "39398:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "39406:6:18", + "nodeType": "YulTypedName", + "src": "39406:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39414:6:18", + "nodeType": "YulTypedName", + "src": "39414:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39425:4:18", + "nodeType": "YulTypedName", + "src": "39425:4:18", + "type": "" + } + ], + "src": "39202:751:18" + }, + { + "body": { + "nativeSrc": "40021:79:18", + "nodeType": "YulBlock", + "src": "40021:79:18", + "statements": [ + { + "nativeSrc": "40031:22:18", + "nodeType": "YulAssignment", + "src": "40031:22:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "40046:6:18", + "nodeType": "YulIdentifier", + "src": "40046:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "40040:5:18", + "nodeType": "YulIdentifier", + "src": "40040:5:18" + }, + "nativeSrc": "40040:13:18", + "nodeType": "YulFunctionCall", + "src": "40040:13:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "40031:5:18", + "nodeType": "YulIdentifier", + "src": "40031:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "40088:5:18", + "nodeType": "YulIdentifier", + "src": "40088:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "40062:25:18", + "nodeType": "YulIdentifier", + "src": "40062:25:18" + }, + "nativeSrc": "40062:32:18", + "nodeType": "YulFunctionCall", + "src": "40062:32:18" + }, + "nativeSrc": "40062:32:18", + "nodeType": "YulExpressionStatement", + "src": "40062:32:18" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "39959:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "39999:6:18", + "nodeType": "YulTypedName", + "src": "39999:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "40007:3:18", + "nodeType": "YulTypedName", + "src": "40007:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "40015:5:18", + "nodeType": "YulTypedName", + "src": "40015:5:18", + "type": "" + } + ], + "src": "39959:141:18" + }, + { + "body": { + "nativeSrc": "40182:273:18", + "nodeType": "YulBlock", + "src": "40182:273:18", + "statements": [ + { + "body": { + "nativeSrc": "40228:83:18", + "nodeType": "YulBlock", + "src": "40228:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "40230:77:18", + "nodeType": "YulIdentifier", + "src": "40230:77:18" + }, + "nativeSrc": "40230:79:18", + "nodeType": "YulFunctionCall", + "src": "40230:79:18" + }, + "nativeSrc": "40230:79:18", + "nodeType": "YulExpressionStatement", + "src": "40230:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "40203:7:18", + "nodeType": "YulIdentifier", + "src": "40203:7:18" + }, + { + "name": "headStart", + "nativeSrc": "40212:9:18", + "nodeType": "YulIdentifier", + "src": "40212:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "40199:3:18", + "nodeType": "YulIdentifier", + "src": "40199:3:18" + }, + "nativeSrc": "40199:23:18", + "nodeType": "YulFunctionCall", + "src": "40199:23:18" + }, + { + "kind": "number", + "nativeSrc": "40224:2:18", + "nodeType": "YulLiteral", + "src": "40224:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "40195:3:18", + "nodeType": "YulIdentifier", + "src": "40195:3:18" + }, + "nativeSrc": "40195:32:18", + "nodeType": "YulFunctionCall", + "src": "40195:32:18" + }, + "nativeSrc": "40192:119:18", + "nodeType": "YulIf", + "src": "40192:119:18" + }, + { + "nativeSrc": "40321:127:18", + "nodeType": "YulBlock", + "src": "40321:127:18", + "statements": [ + { + "nativeSrc": "40336:15:18", + "nodeType": "YulVariableDeclaration", + "src": "40336:15:18", + "value": { + "kind": "number", + "nativeSrc": "40350:1:18", + "nodeType": "YulLiteral", + "src": "40350:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "40340:6:18", + "nodeType": "YulTypedName", + "src": "40340:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "40365:73:18", + "nodeType": "YulAssignment", + "src": "40365:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40410:9:18", + "nodeType": "YulIdentifier", + "src": "40410:9:18" + }, + { + "name": "offset", + "nativeSrc": "40421:6:18", + "nodeType": "YulIdentifier", + "src": "40421:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40406:3:18", + "nodeType": "YulIdentifier", + "src": "40406:3:18" + }, + "nativeSrc": "40406:22:18", + "nodeType": "YulFunctionCall", + "src": "40406:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "40430:7:18", + "nodeType": "YulIdentifier", + "src": "40430:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "40375:30:18", + "nodeType": "YulIdentifier", + "src": "40375:30:18" + }, + "nativeSrc": "40375:63:18", + "nodeType": "YulFunctionCall", + "src": "40375:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "40365:6:18", + "nodeType": "YulIdentifier", + "src": "40365:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "40106:349:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40152:9:18", + "nodeType": "YulTypedName", + "src": "40152:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "40163:7:18", + "nodeType": "YulTypedName", + "src": "40163:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "40175:6:18", + "nodeType": "YulTypedName", + "src": "40175:6:18", + "type": "" + } + ], + "src": "40106:349:18" + }, + { + "body": { + "nativeSrc": "40789:725:18", + "nodeType": "YulBlock", + "src": "40789:725:18", + "statements": [ + { + "nativeSrc": "40799:27:18", + "nodeType": "YulAssignment", + "src": "40799:27:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40811:9:18", + "nodeType": "YulIdentifier", + "src": "40811:9:18" + }, + { + "kind": "number", + "nativeSrc": "40822:3:18", + "nodeType": "YulLiteral", + "src": "40822:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40807:3:18", + "nodeType": "YulIdentifier", + "src": "40807:3:18" + }, + "nativeSrc": "40807:19:18", + "nodeType": "YulFunctionCall", + "src": "40807:19:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40799:4:18", + "nodeType": "YulIdentifier", + "src": "40799:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "40880:6:18", + "nodeType": "YulIdentifier", + "src": "40880:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40893:9:18", + "nodeType": "YulIdentifier", + "src": "40893:9:18" + }, + { + "kind": "number", + "nativeSrc": "40904:1:18", + "nodeType": "YulLiteral", + "src": "40904:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40889:3:18", + "nodeType": "YulIdentifier", + "src": "40889:3:18" + }, + "nativeSrc": "40889:17:18", + "nodeType": "YulFunctionCall", + "src": "40889:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40836:43:18", + "nodeType": "YulIdentifier", + "src": "40836:43:18" + }, + "nativeSrc": "40836:71:18", + "nodeType": "YulFunctionCall", + "src": "40836:71:18" + }, + "nativeSrc": "40836:71:18", + "nodeType": "YulExpressionStatement", + "src": "40836:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "40961:6:18", + "nodeType": "YulIdentifier", + "src": "40961:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40974:9:18", + "nodeType": "YulIdentifier", + "src": "40974:9:18" + }, + { + "kind": "number", + "nativeSrc": "40985:2:18", + "nodeType": "YulLiteral", + "src": "40985:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40970:3:18", + "nodeType": "YulIdentifier", + "src": "40970:3:18" + }, + "nativeSrc": "40970:18:18", + "nodeType": "YulFunctionCall", + "src": "40970:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40917:43:18", + "nodeType": "YulIdentifier", + "src": "40917:43:18" + }, + "nativeSrc": "40917:72:18", + "nodeType": "YulFunctionCall", + "src": "40917:72:18" + }, + "nativeSrc": "40917:72:18", + "nodeType": "YulExpressionStatement", + "src": "40917:72:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41010:9:18", + "nodeType": "YulIdentifier", + "src": "41010:9:18" + }, + { + "kind": "number", + "nativeSrc": "41021:2:18", + "nodeType": "YulLiteral", + "src": "41021:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41006:3:18", + "nodeType": "YulIdentifier", + "src": "41006:3:18" + }, + "nativeSrc": "41006:18:18", + "nodeType": "YulFunctionCall", + "src": "41006:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "41030:4:18", + "nodeType": "YulIdentifier", + "src": "41030:4:18" + }, + { + "name": "headStart", + "nativeSrc": "41036:9:18", + "nodeType": "YulIdentifier", + "src": "41036:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41026:3:18", + "nodeType": "YulIdentifier", + "src": "41026:3:18" + }, + "nativeSrc": "41026:20:18", + "nodeType": "YulFunctionCall", + "src": "41026:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40999:6:18", + "nodeType": "YulIdentifier", + "src": "40999:6:18" + }, + "nativeSrc": "40999:48:18", + "nodeType": "YulFunctionCall", + "src": "40999:48:18" + }, + "nativeSrc": "40999:48:18", + "nodeType": "YulExpressionStatement", + "src": "40999:48:18" + }, + { + "nativeSrc": "41056:116:18", + "nodeType": "YulAssignment", + "src": "41056:116:18", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "41158:6:18", + "nodeType": "YulIdentifier", + "src": "41158:6:18" + }, + { + "name": "tail", + "nativeSrc": "41167:4:18", + "nodeType": "YulIdentifier", + "src": "41167:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "41064:93:18", + "nodeType": "YulIdentifier", + "src": "41064:93:18" + }, + "nativeSrc": "41064:108:18", + "nodeType": "YulFunctionCall", + "src": "41064:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "41056:4:18", + "nodeType": "YulIdentifier", + "src": "41056:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41193:9:18", + "nodeType": "YulIdentifier", + "src": "41193:9:18" + }, + { + "kind": "number", + "nativeSrc": "41204:2:18", + "nodeType": "YulLiteral", + "src": "41204:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41189:3:18", + "nodeType": "YulIdentifier", + "src": "41189:3:18" + }, + "nativeSrc": "41189:18:18", + "nodeType": "YulFunctionCall", + "src": "41189:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "41213:4:18", + "nodeType": "YulIdentifier", + "src": "41213:4:18" + }, + { + "name": "headStart", + "nativeSrc": "41219:9:18", + "nodeType": "YulIdentifier", + "src": "41219:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41209:3:18", + "nodeType": "YulIdentifier", + "src": "41209:3:18" + }, + "nativeSrc": "41209:20:18", + "nodeType": "YulFunctionCall", + "src": "41209:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41182:6:18", + "nodeType": "YulIdentifier", + "src": "41182:6:18" + }, + "nativeSrc": "41182:48:18", + "nodeType": "YulFunctionCall", + "src": "41182:48:18" + }, + "nativeSrc": "41182:48:18", + "nodeType": "YulExpressionStatement", + "src": "41182:48:18" + }, + { + "nativeSrc": "41239:116:18", + "nodeType": "YulAssignment", + "src": "41239:116:18", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "41341:6:18", + "nodeType": "YulIdentifier", + "src": "41341:6:18" + }, + { + "name": "tail", + "nativeSrc": "41350:4:18", + "nodeType": "YulIdentifier", + "src": "41350:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "41247:93:18", + "nodeType": "YulIdentifier", + "src": "41247:93:18" + }, + "nativeSrc": "41247:108:18", + "nodeType": "YulFunctionCall", + "src": "41247:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "41239:4:18", + "nodeType": "YulIdentifier", + "src": "41239:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41376:9:18", + "nodeType": "YulIdentifier", + "src": "41376:9:18" + }, + { + "kind": "number", + "nativeSrc": "41387:3:18", + "nodeType": "YulLiteral", + "src": "41387:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41372:3:18", + "nodeType": "YulIdentifier", + "src": "41372:3:18" + }, + "nativeSrc": "41372:19:18", + "nodeType": "YulFunctionCall", + "src": "41372:19:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "41397:4:18", + "nodeType": "YulIdentifier", + "src": "41397:4:18" + }, + { + "name": "headStart", + "nativeSrc": "41403:9:18", + "nodeType": "YulIdentifier", + "src": "41403:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41393:3:18", + "nodeType": "YulIdentifier", + "src": "41393:3:18" + }, + "nativeSrc": "41393:20:18", + "nodeType": "YulFunctionCall", + "src": "41393:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41365:6:18", + "nodeType": "YulIdentifier", + "src": "41365:6:18" + }, + "nativeSrc": "41365:49:18", + "nodeType": "YulFunctionCall", + "src": "41365:49:18" + }, + "nativeSrc": "41365:49:18", + "nodeType": "YulExpressionStatement", + "src": "41365:49:18" + }, + { + "nativeSrc": "41423:84:18", + "nodeType": "YulAssignment", + "src": "41423:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "41493:6:18", + "nodeType": "YulIdentifier", + "src": "41493:6:18" + }, + { + "name": "tail", + "nativeSrc": "41502:4:18", + "nodeType": "YulIdentifier", + "src": "41502:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "41431:61:18", + "nodeType": "YulIdentifier", + "src": "41431:61:18" + }, + "nativeSrc": "41431:76:18", + "nodeType": "YulFunctionCall", + "src": "41431:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "41423:4:18", + "nodeType": "YulIdentifier", + "src": "41423:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "40461:1053:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40729:9:18", + "nodeType": "YulTypedName", + "src": "40729:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "40741:6:18", + "nodeType": "YulTypedName", + "src": "40741:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "40749:6:18", + "nodeType": "YulTypedName", + "src": "40749:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "40757:6:18", + "nodeType": "YulTypedName", + "src": "40757:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "40765:6:18", + "nodeType": "YulTypedName", + "src": "40765:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40773:6:18", + "nodeType": "YulTypedName", + "src": "40773:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40784:4:18", + "nodeType": "YulTypedName", + "src": "40784:4:18", + "type": "" + } + ], + "src": "40461:1053:18" + } + ] + }, + "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_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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\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_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_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 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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\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 copy_memory_to_memory_with_cleanup(src, dst, length) {\n\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 mstore(add(dst, length), 0)\n\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_with_cleanup(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 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { 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_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\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 array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(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 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(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 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_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_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 let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(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_uint256(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 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(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_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_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_address(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 abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { 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_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_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 let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\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_t_address__to_t_address_t_address__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_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\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 cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\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 array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(memPtr) {\n\n mstore(add(memPtr, 0), \"/api/v1/nft/\")\n\n }\n\n function abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 12)\n store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(pos)\n end := add(pos, 12)\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_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(memPtr) {\n\n mstore(add(memPtr, 0), \"/\")\n\n }\n\n function abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(pos)\n end := add(pos, 1)\n }\n\n function store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(memPtr) {\n\n mstore(add(memPtr, 0), \"/reputation-score\")\n\n }\n\n function abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_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_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_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 pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_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(value2, pos)\n\n pos := abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\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 panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__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_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\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 abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , 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_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n", + "id": 18, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a6004803603810190610145919061216b565b6103f2565b60405161015791906121ba565b60405180910390f35b61017a6004803603810190610175919061222d565b61044c565b6040516101879190612275565b60405180910390f35b6101aa60048036038101906101a59190612290565b61048c565b6040516101b7919061234d565b60405180910390f35b6101da60048036038101906101d591906123a5565b610520565b6040516101e791906123e1565b60405180910390f35b61020a600480360381019061020591906125f9565b610540565b005b610226600480360381019061022191906126c8565b6105e8565b005b610242600480360381019061023d91906126c8565b61060a565b005b61025e600480360381019061025991906127cb565b610685565b60405161026b9190612901565b60405180910390f35b61027c61078e565b60405161028991906121ba565b60405180910390f35b6102ac60048036038101906102a79190612923565b610798565b005b6102c860048036038101906102c39190612a47565b610856565b6040516102d5919061234d565b60405180910390f35b6102f860048036038101906102f391906126c8565b610898565b6040516103059190612275565b60405180910390f35b61032860048036038101906103239190612aa3565b610903565b005b610332610967565b60405161033f91906123e1565b60405180910390f35b610362600480360381019061035d9190612b18565b61096e565b005b61036c610984565b005b610388600480360381019061038391906126c8565b610a01565b005b6103a4600480360381019061039f9190612b58565b610a23565b6040516103b19190612275565b60405180910390f35b6103d460048036038101906103cf9190612b98565b610ab7565b005b6103f060048036038101906103eb9190612c2f565b610b5f565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c41565b156104825761047b82610c8e565b9050610487565b600090505b919050565b60606002805461049b90612cb1565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cb1565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a23565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612cf1565b60405180910390fd5b6105e08686868686610d10565b505050505050565b6105f182610520565b6105fa81610e08565b6106048383610e1c565b50505050565b610612610d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f0e565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d1a565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612401565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761100190919063ffffffff16565b610754838761101590919063ffffffff16565b6103f2565b82828151811061076c5761076b612d43565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a281611029565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612d72565b60405180910390fd5b6107ff8585600185611072565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612de0565b60405180910390a35050505050565b60608261086281611029565b600561086d8561110b565b8460405160200161088093929190612fb3565b60405160208183030381529060405291505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61091081610e08565b610919826111d9565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161094b929190613089565b60405180910390a18160059081610962919061324d565b505050565b6000801b81565b610980610979610d08565b8383611220565b5050565b600060045490506109a73382600160405180602001604052806000815250611072565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36001816109f8919061334e565b60048190555050565b610a0a82610520565b610a1381610e08565b610a1d8383610f0e565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ac1610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b065750610b048682610a23565b155b15610b4a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b41929190612cf1565b60405180910390fd5b610b578686868686611390565b505050505050565b81610b6981611029565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610bdd5781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610bd4929190612d72565b60405180910390fd5b610be98686600161149b565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c319190612de0565b60405180910390a3505050505050565b6000610c6d827f01ffc9a700000000000000000000000000000000000000000000000000000000611542565b8015610c875750610c858263ffffffff60e01b611542565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d015750610d00826115e1565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d825760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d799190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610df45760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610deb9190613382565b60405180910390fd5b610e0185858585856116c3565b5050505050565b610e1981610e14610d08565b611775565b50565b6000610e288383610898565b610f035760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ea0610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f08565b600090505b92915050565b6000610f1a8383610898565b15610ff65760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f93610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610ffb565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600454811061106f57806040517fc80a970c00000000000000000000000000000000000000000000000000000000815260040161106691906121ba565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110e45760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016110db9190613382565b60405180910390fd5b6000806110f185856117c6565b915091506111036000878484876116c3565b505050505050565b60606000600161111a846117f6565b01905060008167ffffffffffffffff81111561113957611138612401565b5b6040519080825280601f01601f19166020018201604052801561116b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156111ce578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111c2576111c161339d565b5b04945060008503611179575b819350505050919050565b600081510361121d576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161121490613418565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112925760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112899190613382565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113839190612275565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114025760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f99190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114745760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161146b9190613382565b60405180910390fd5b60008061148185856117c6565b9150915061149287878484876116c3565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150d5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016115049190613382565b60405180910390fd5b60008061151a84846117c6565b9150915061153b8560008484604051806020016040528060008152506116c3565b5050505050565b600080826040516024016115569190613447565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d915060005190508280156115c9575060208210155b80156115d55750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116ac57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116bc57506116bb82611949565b5b9050919050565b6116cf858585856119b3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461176e57600061170d610d08565b9050600184510361175d57600061172e60008661101590919063ffffffff16565b9050600061174660008661101590919063ffffffff16565b9050611756838989858589611d5b565b505061176c565b61176b818787878787611f0f565b5b505b5050505050565b61177f8282610898565b6117c25780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117b9929190613462565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611854577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161184a5761184961339d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611891576d04ee2d6d415b85acef810000000083816118875761188661339d565b5b0492506020810190505b662386f26fc1000083106118c057662386f26fc1000083816118b6576118b561339d565b5b0492506010810190505b6305f5e10083106118e9576305f5e10083816118df576118de61339d565b5b0492506008810190505b612710831061190e5761271083816119045761190361339d565b5b0492506004810190505b6064831061193157606483816119275761192661339d565b5b0492506002810190505b600a8310611940576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b80518251146119fd57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016119f4929190612d1a565b60405180910390fd5b6000611a07610d08565b905060005b8351811015611c16576000611a2a828661101590919063ffffffff16565b90506000611a41838661101590919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b6e57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b1657888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b0d949392919061348b565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c09578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c01919061334e565b925050819055505b5050806001019050611a0c565b506001835103611cd5576000611c3660008561101590919063ffffffff16565b90506000611c4e60008561101590919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611cc6929190612d1a565b60405180910390a45050611d54565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d4b9291906134d0565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f07578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611dbc95949392919061355c565b6020604051808303816000875af1925050508015611df857506040513d601f19601f82011682018060405250810190611df591906135cb565b60015b611e7c573d8060008114611e28576040519150601f19603f3d011682016040523d82523d6000602084013e611e2d565b606091505b506000815103611e7457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e6b9190613382565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611efc9190613382565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156120bb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f709594939291906135f8565b6020604051808303816000875af1925050508015611fac57506040513d601f19601f82011682018060405250810190611fa991906135cb565b60015b612030573d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50600081510361202857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161201f9190613382565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120b957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120b09190613382565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612102826120d7565b9050919050565b612112816120f7565b811461211d57600080fd5b50565b60008135905061212f81612109565b92915050565b6000819050919050565b61214881612135565b811461215357600080fd5b50565b6000813590506121658161213f565b92915050565b60008060408385031215612182576121816120cd565b5b600061219085828601612120565b92505060206121a185828601612156565b9150509250929050565b6121b481612135565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61220a816121d5565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600060208284031215612243576122426120cd565b5b600061225184828501612218565b91505092915050565b60008115159050919050565b61226f8161225a565b82525050565b600060208201905061228a6000830184612266565b92915050565b6000602082840312156122a6576122a56120cd565b5b60006122b484828501612156565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122f75780820151818401526020810190506122dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061231f826122bd565b61232981856122c8565b93506123398185602086016122d9565b61234281612303565b840191505092915050565b600060208201905081810360008301526123678184612314565b905092915050565b6000819050919050565b6123828161236f565b811461238d57600080fd5b50565b60008135905061239f81612379565b92915050565b6000602082840312156123bb576123ba6120cd565b5b60006123c984828501612390565b91505092915050565b6123db8161236f565b82525050565b60006020820190506123f660008301846123d2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61243982612303565b810181811067ffffffffffffffff8211171561245857612457612401565b5b80604052505050565b600061246b6120c3565b90506124778282612430565b919050565b600067ffffffffffffffff82111561249757612496612401565b5b602082029050602081019050919050565b600080fd5b60006124c06124bb8461247c565b612461565b905080838252602082019050602084028301858111156124e3576124e26124a8565b5b835b8181101561250c57806124f88882612156565b8452602084019350506020810190506124e5565b5050509392505050565b600082601f83011261252b5761252a6123fc565b5b813561253b8482602086016124ad565b91505092915050565b600080fd5b600067ffffffffffffffff82111561256457612563612401565b5b61256d82612303565b9050602081019050919050565b82818337600083830152505050565b600061259c61259784612549565b612461565b9050828152602081018484840111156125b8576125b7612544565b5b6125c384828561257a565b509392505050565b600082601f8301126125e0576125df6123fc565b5b81356125f0848260208601612589565b91505092915050565b600080600080600060a08688031215612615576126146120cd565b5b600061262388828901612120565b955050602061263488828901612120565b945050604086013567ffffffffffffffff811115612655576126546120d2565b5b61266188828901612516565b935050606086013567ffffffffffffffff811115612682576126816120d2565b5b61268e88828901612516565b925050608086013567ffffffffffffffff8111156126af576126ae6120d2565b5b6126bb888289016125cb565b9150509295509295909350565b600080604083850312156126df576126de6120cd565b5b60006126ed85828601612390565b92505060206126fe85828601612120565b9150509250929050565b600067ffffffffffffffff82111561272357612722612401565b5b602082029050602081019050919050565b600061274761274284612708565b612461565b9050808382526020820190506020840283018581111561276a576127696124a8565b5b835b81811015612793578061277f8882612120565b84526020840193505060208101905061276c565b5050509392505050565b600082601f8301126127b2576127b16123fc565b5b81356127c2848260208601612734565b91505092915050565b600080604083850312156127e2576127e16120cd565b5b600083013567ffffffffffffffff811115612800576127ff6120d2565b5b61280c8582860161279d565b925050602083013567ffffffffffffffff81111561282d5761282c6120d2565b5b61283985828601612516565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61287881612135565b82525050565b600061288a838361286f565b60208301905092915050565b6000602082019050919050565b60006128ae82612843565b6128b8818561284e565b93506128c38361285f565b8060005b838110156128f45781516128db888261287e565b97506128e683612896565b9250506001810190506128c7565b5085935050505092915050565b6000602082019050818103600083015261291b81846128a3565b905092915050565b6000806000806080858703121561293d5761293c6120cd565b5b600061294b87828801612120565b945050602061295c87828801612156565b935050604061296d87828801612156565b925050606085013567ffffffffffffffff81111561298e5761298d6120d2565b5b61299a878288016125cb565b91505092959194509250565b600067ffffffffffffffff8211156129c1576129c0612401565b5b6129ca82612303565b9050602081019050919050565b60006129ea6129e5846129a6565b612461565b905082815260208101848484011115612a0657612a05612544565b5b612a1184828561257a565b509392505050565b600082601f830112612a2e57612a2d6123fc565b5b8135612a3e8482602086016129d7565b91505092915050565b60008060408385031215612a5e57612a5d6120cd565b5b6000612a6c85828601612156565b925050602083013567ffffffffffffffff811115612a8d57612a8c6120d2565b5b612a9985828601612a19565b9150509250929050565b600060208284031215612ab957612ab86120cd565b5b600082013567ffffffffffffffff811115612ad757612ad66120d2565b5b612ae384828501612a19565b91505092915050565b612af58161225a565b8114612b0057600080fd5b50565b600081359050612b1281612aec565b92915050565b60008060408385031215612b2f57612b2e6120cd565b5b6000612b3d85828601612120565b9250506020612b4e85828601612b03565b9150509250929050565b60008060408385031215612b6f57612b6e6120cd565b5b6000612b7d85828601612120565b9250506020612b8e85828601612120565b9150509250929050565b600080600080600060a08688031215612bb457612bb36120cd565b5b6000612bc288828901612120565b9550506020612bd388828901612120565b9450506040612be488828901612156565b9350506060612bf588828901612156565b925050608086013567ffffffffffffffff811115612c1657612c156120d2565b5b612c22888289016125cb565b9150509295509295909350565b600080600060608486031215612c4857612c476120cd565b5b6000612c5686828701612120565b9350506020612c6786828701612156565b9250506040612c7886828701612156565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612cc957607f821691505b602082108103612cdc57612cdb612c82565b5b50919050565b612ceb816120f7565b82525050565b6000604082019050612d066000830185612ce2565b612d136020830184612ce2565b9392505050565b6000604082019050612d2f60008301856121ab565b612d3c60208301846121ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612d876000830185612ce2565b612d9460208301846121ab565b9392505050565b6000819050919050565b6000819050919050565b6000612dca612dc5612dc084612d9b565b612da5565b612135565b9050919050565b612dda81612daf565b82525050565b6000602082019050612df56000830184612dd1565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612e2881612cb1565b612e328186612dfb565b94506001821660008114612e4d5760018114612e6257612e95565b60ff1983168652811515820286019350612e95565b612e6b85612e06565b60005b83811015612e8d57815481890152600182019150602081019050612e6e565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612ed4600c83612dfb565b9150612edf82612e9e565b600c82019050919050565b6000612ef5826122bd565b612eff8185612dfb565b9350612f0f8185602086016122d9565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f51600183612dfb565b9150612f5c82612f1b565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b6000612f9d601183612dfb565b9150612fa882612f67565b601182019050919050565b6000612fbf8286612e1b565b9150612fca82612ec7565b9150612fd68285612eea565b9150612fe182612f44565b9150612fed8284612eea565b9150612ff882612f90565b9150819050949350505050565b6000815461301281612cb1565b61301c81866122c8565b94506001821660008114613037576001811461304d57613080565b60ff198316865281151560200286019350613080565b61305685612e06565b60005b8381101561307857815481890152600182019150602081019050613059565b808801955050505b50505092915050565b600060408201905081810360008301526130a38185613005565b905081810360208301526130b78184612314565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261310d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130d0565b61311786836130d0565b95508019841693508086168417925050509392505050565b600061314a61314561314084612135565b612da5565b612135565b9050919050565b6000819050919050565b6131648361312f565b61317861317082613151565b8484546130dd565b825550505050565b600090565b61318d613180565b61319881848461315b565b505050565b5b818110156131bc576131b1600082613185565b60018101905061319e565b5050565b601f821115613201576131d281612e06565b6131db846130c0565b810160208510156131ea578190505b6131fe6131f6856130c0565b83018261319d565b50505b505050565b600082821c905092915050565b600061322460001984600802613206565b1980831691505092915050565b600061323d8383613213565b9150826002028217905092915050565b613256826122bd565b67ffffffffffffffff81111561326f5761326e612401565b5b6132798254612cb1565b6132848282856131c0565b600060209050601f8311600181146132b757600084156132a5578287015190505b6132af8582613231565b865550613317565b601f1984166132c586612e06565b60005b828110156132ed578489015182556001820191506020850194506020810190506132c8565b8683101561330a5784890151613306601f891682613213565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061335982612135565b915061336483612135565b925082820190508082111561337c5761337b61331f565b5b92915050565b60006020820190506133976000830184612ce2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134026013836122c8565b915061340d826133cc565b602082019050919050565b60006020820190508181036000830152613431816133f5565b9050919050565b613441816121d5565b82525050565b600060208201905061345c6000830184613438565b92915050565b60006040820190506134776000830185612ce2565b61348460208301846123d2565b9392505050565b60006080820190506134a06000830187612ce2565b6134ad60208301866121ab565b6134ba60408301856121ab565b6134c760608301846121ab565b95945050505050565b600060408201905081810360008301526134ea81856128a3565b905081810360208301526134fe81846128a3565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061352e82613507565b6135388185613512565b93506135488185602086016122d9565b61355181612303565b840191505092915050565b600060a0820190506135716000830188612ce2565b61357e6020830187612ce2565b61358b60408301866121ab565b61359860608301856121ab565b81810360808301526135aa8184613523565b90509695505050505050565b6000815190506135c581612201565b92915050565b6000602082840312156135e1576135e06120cd565b5b60006135ef848285016135b6565b91505092915050565b600060a08201905061360d6000830188612ce2565b61361a6020830187612ce2565b818103604083015261362c81866128a3565b9050818103606083015261364081856128a3565b905081810360808301526136548184613523565b9050969550505050505056fea2646970667358221220f89062492c0a90a3bf6e0872ad5b5976f927f8e47cd140986515b878c9bf129664736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x216B JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x222D JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x2290 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x234D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23A5 JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x23E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x27CB JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2901 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2923 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A47 JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x234D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0x898 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AA3 JUMP JUMPDEST PUSH2 0x903 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x23E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B18 JUMP JUMPDEST PUSH2 0x96E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x984 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST PUSH2 0xA01 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B58 JUMP JUMPDEST PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2B98 JUMP JUMPDEST PUSH2 0xAB7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C2F JUMP JUMPDEST PUSH2 0xB5F JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC41 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xC8E JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C7 SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54A PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA23 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2CF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD10 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE08 JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE1C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD08 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1001 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D43 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x1029 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2D72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x1072 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2DE0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x1029 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x86D DUP6 PUSH2 0x110B JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x880 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x910 DUP2 PUSH2 0xE08 JUMP JUMPDEST PUSH2 0x919 DUP3 PUSH2 0x11D9 JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x94B SWAP3 SWAP2 SWAP1 PUSH2 0x3089 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x962 SWAP2 SWAP1 PUSH2 0x324D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x980 PUSH2 0x979 PUSH2 0xD08 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1220 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9A7 CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1072 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0x9F8 SWAP2 SWAP1 PUSH2 0x334E JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA0A DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA13 DUP2 PUSH2 0xE08 JUMP JUMPDEST PUSH2 0xA1D DUP4 DUP4 PUSH2 0xF0E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC1 PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB06 JUMPI POP PUSH2 0xB04 DUP7 DUP3 PUSH2 0xA23 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB4A JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB41 SWAP3 SWAP2 SWAP1 PUSH2 0x2CF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB57 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1390 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xB69 DUP2 PUSH2 0x1029 JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBDD JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBD4 SWAP3 SWAP2 SWAP1 PUSH2 0x2D72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBE9 DUP7 DUP7 PUSH1 0x1 PUSH2 0x149B JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC31 SWAP2 SWAP1 PUSH2 0x2DE0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC6D DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1542 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC87 JUMPI POP PUSH2 0xC85 DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1542 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD01 JUMPI POP PUSH2 0xD00 DUP3 PUSH2 0x15E1 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD82 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD79 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDF4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDEB SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE01 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE19 DUP2 PUSH2 0xE14 PUSH2 0xD08 JUMP JUMPDEST PUSH2 0x1775 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE28 DUP4 DUP4 PUSH2 0x898 JUMP JUMPDEST PUSH2 0xF03 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xEA0 PUSH2 0xD08 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xF08 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF1A DUP4 DUP4 PUSH2 0x898 JUMP JUMPDEST ISZERO PUSH2 0xFF6 JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xF93 PUSH2 0xD08 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xFFB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x106F JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1066 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10E4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10DB SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10F1 DUP6 DUP6 PUSH2 0x17C6 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1103 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x111A DUP5 PUSH2 0x17F6 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1139 JUMPI PUSH2 0x1138 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x116B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x11CE JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x11C2 JUMPI PUSH2 0x11C1 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1179 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x121D JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1214 SWAP1 PUSH2 0x3418 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1292 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1289 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1383 SWAP2 SWAP1 PUSH2 0x2275 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1402 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F9 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1474 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x146B SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1481 DUP6 DUP6 PUSH2 0x17C6 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1492 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x150D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1504 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x151A DUP5 DUP5 PUSH2 0x17C6 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x153B DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16C3 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1556 SWAP2 SWAP1 PUSH2 0x3447 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x15C9 JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x15D5 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16AC JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x16BC JUMPI POP PUSH2 0x16BB DUP3 PUSH2 0x1949 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16CF DUP6 DUP6 DUP6 DUP6 PUSH2 0x19B3 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x176E JUMPI PUSH1 0x0 PUSH2 0x170D PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x175D JUMPI PUSH1 0x0 PUSH2 0x172E PUSH1 0x0 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1746 PUSH1 0x0 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x1756 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1D5B JUMP JUMPDEST POP POP PUSH2 0x176C JUMP JUMPDEST PUSH2 0x176B DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F0F JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x177F DUP3 DUP3 PUSH2 0x898 JUMP JUMPDEST PUSH2 0x17C2 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17B9 SWAP3 SWAP2 SWAP1 PUSH2 0x3462 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1854 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x184A JUMPI PUSH2 0x1849 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1891 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1887 JUMPI PUSH2 0x1886 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x18C0 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18B6 JUMPI PUSH2 0x18B5 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x18E9 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x18DF JUMPI PUSH2 0x18DE PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x190E JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1904 JUMPI PUSH2 0x1903 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1931 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1927 JUMPI PUSH2 0x1926 PUSH2 0x339D JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1940 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x19FD JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19F4 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A07 PUSH2 0xD08 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C16 JUMPI PUSH1 0x0 PUSH2 0x1A2A DUP3 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A41 DUP4 DUP7 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1B6E JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B16 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B0D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x348B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C09 JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C01 SWAP2 SWAP1 PUSH2 0x334E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A0C JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1CD5 JUMPI PUSH1 0x0 PUSH2 0x1C36 PUSH1 0x0 DUP6 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C4E PUSH1 0x0 DUP6 PUSH2 0x1015 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1CC6 SWAP3 SWAP2 SWAP1 PUSH2 0x2D1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D54 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D4B SWAP3 SWAP2 SWAP1 PUSH2 0x34D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F07 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DBC SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x355C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1DF8 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DF5 SWAP2 SWAP1 PUSH2 0x35CB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1E7C JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E28 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E2D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1E74 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E6B SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F05 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EFC SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x20BB JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F70 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35F8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FAC JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FA9 SWAP2 SWAP1 PUSH2 0x35CB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2030 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FDC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x2028 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x201F SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20B9 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B0 SWAP2 SWAP1 PUSH2 0x3382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2102 DUP3 PUSH2 0x20D7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2112 DUP2 PUSH2 0x20F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x211D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x212F DUP2 PUSH2 0x2109 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2148 DUP2 PUSH2 0x2135 JUMP JUMPDEST DUP2 EQ PUSH2 0x2153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2165 DUP2 PUSH2 0x213F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2190 DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21A1 DUP6 DUP3 DUP7 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21B4 DUP2 PUSH2 0x2135 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x21CF PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x220A DUP2 PUSH2 0x21D5 JUMP JUMPDEST DUP2 EQ PUSH2 0x2215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2227 DUP2 PUSH2 0x2201 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2243 JUMPI PUSH2 0x2242 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2251 DUP5 DUP3 DUP6 ADD PUSH2 0x2218 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226F DUP2 PUSH2 0x225A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x228A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2266 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22A6 JUMPI PUSH2 0x22A5 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22B4 DUP5 DUP3 DUP6 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22F7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x22DC JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x231F DUP3 PUSH2 0x22BD JUMP JUMPDEST PUSH2 0x2329 DUP2 DUP6 PUSH2 0x22C8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2339 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x22D9 JUMP JUMPDEST PUSH2 0x2342 DUP2 PUSH2 0x2303 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2367 DUP2 DUP5 PUSH2 0x2314 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2382 DUP2 PUSH2 0x236F JUMP JUMPDEST DUP2 EQ PUSH2 0x238D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x239F DUP2 PUSH2 0x2379 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23BB JUMPI PUSH2 0x23BA PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23C9 DUP5 DUP3 DUP6 ADD PUSH2 0x2390 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DB DUP2 PUSH2 0x236F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23F6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2439 DUP3 PUSH2 0x2303 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2458 JUMPI PUSH2 0x2457 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x246B PUSH2 0x20C3 JUMP JUMPDEST SWAP1 POP PUSH2 0x2477 DUP3 DUP3 PUSH2 0x2430 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2497 JUMPI PUSH2 0x2496 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24C0 PUSH2 0x24BB DUP5 PUSH2 0x247C JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x24E3 JUMPI PUSH2 0x24E2 PUSH2 0x24A8 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x250C JUMPI DUP1 PUSH2 0x24F8 DUP9 DUP3 PUSH2 0x2156 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x24E5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x252B JUMPI PUSH2 0x252A PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x253B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2564 JUMPI PUSH2 0x2563 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH2 0x256D DUP3 PUSH2 0x2303 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x259C PUSH2 0x2597 DUP5 PUSH2 0x2549 JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25B8 JUMPI PUSH2 0x25B7 PUSH2 0x2544 JUMP JUMPDEST JUMPDEST PUSH2 0x25C3 DUP5 DUP3 DUP6 PUSH2 0x257A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25E0 JUMPI PUSH2 0x25DF PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2589 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2615 JUMPI PUSH2 0x2614 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2623 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2634 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2655 JUMPI PUSH2 0x2654 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2661 DUP9 DUP3 DUP10 ADD PUSH2 0x2516 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2682 JUMPI PUSH2 0x2681 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x268E DUP9 DUP3 DUP10 ADD PUSH2 0x2516 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26AF JUMPI PUSH2 0x26AE PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x26BB DUP9 DUP3 DUP10 ADD PUSH2 0x25CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26DF JUMPI PUSH2 0x26DE PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26ED DUP6 DUP3 DUP7 ADD PUSH2 0x2390 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x26FE DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2723 JUMPI PUSH2 0x2722 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2747 PUSH2 0x2742 DUP5 PUSH2 0x2708 JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x276A JUMPI PUSH2 0x2769 PUSH2 0x24A8 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2793 JUMPI DUP1 PUSH2 0x277F DUP9 DUP3 PUSH2 0x2120 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x276C JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27B2 JUMPI PUSH2 0x27B1 PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27C2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2734 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27E2 JUMPI PUSH2 0x27E1 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2800 JUMPI PUSH2 0x27FF PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x280C DUP6 DUP3 DUP7 ADD PUSH2 0x279D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282D JUMPI PUSH2 0x282C PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2839 DUP6 DUP3 DUP7 ADD PUSH2 0x2516 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2878 DUP2 PUSH2 0x2135 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x288A DUP4 DUP4 PUSH2 0x286F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28AE DUP3 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x28B8 DUP2 DUP6 PUSH2 0x284E JUMP JUMPDEST SWAP4 POP PUSH2 0x28C3 DUP4 PUSH2 0x285F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x28F4 JUMPI DUP2 MLOAD PUSH2 0x28DB DUP9 DUP3 PUSH2 0x287E JUMP JUMPDEST SWAP8 POP PUSH2 0x28E6 DUP4 PUSH2 0x2896 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x28C7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x291B DUP2 DUP5 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x293D JUMPI PUSH2 0x293C PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x294B DUP8 DUP3 DUP9 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x295C DUP8 DUP3 DUP9 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x296D DUP8 DUP3 DUP9 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x298E JUMPI PUSH2 0x298D PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x299A DUP8 DUP3 DUP9 ADD PUSH2 0x25CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x29C1 JUMPI PUSH2 0x29C0 PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH2 0x29CA DUP3 PUSH2 0x2303 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29EA PUSH2 0x29E5 DUP5 PUSH2 0x29A6 JUMP JUMPDEST PUSH2 0x2461 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A06 JUMPI PUSH2 0x2A05 PUSH2 0x2544 JUMP JUMPDEST JUMPDEST PUSH2 0x2A11 DUP5 DUP3 DUP6 PUSH2 0x257A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A2E JUMPI PUSH2 0x2A2D PUSH2 0x23FC JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A3E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A5E JUMPI PUSH2 0x2A5D PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A6C DUP6 DUP3 DUP7 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A8D JUMPI PUSH2 0x2A8C PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2A99 DUP6 DUP3 DUP7 ADD PUSH2 0x2A19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB9 JUMPI PUSH2 0x2AB8 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD7 JUMPI PUSH2 0x2AD6 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2AE3 DUP5 DUP3 DUP6 ADD PUSH2 0x2A19 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2AF5 DUP2 PUSH2 0x225A JUMP JUMPDEST DUP2 EQ PUSH2 0x2B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B12 DUP2 PUSH2 0x2AEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B2F JUMPI PUSH2 0x2B2E PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B3D DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B4E DUP6 DUP3 DUP7 ADD PUSH2 0x2B03 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B6F JUMPI PUSH2 0x2B6E PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B7D DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B8E DUP6 DUP3 DUP7 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BB4 JUMPI PUSH2 0x2BB3 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC2 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2BD3 DUP9 DUP3 DUP10 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2BE4 DUP9 DUP3 DUP10 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2BF5 DUP9 DUP3 DUP10 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C16 JUMPI PUSH2 0x2C15 PUSH2 0x20D2 JUMP JUMPDEST JUMPDEST PUSH2 0x2C22 DUP9 DUP3 DUP10 ADD PUSH2 0x25CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C48 JUMPI PUSH2 0x2C47 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C56 DUP7 DUP3 DUP8 ADD PUSH2 0x2120 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2C67 DUP7 DUP3 DUP8 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2C78 DUP7 DUP3 DUP8 ADD PUSH2 0x2156 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2CC9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2CDC JUMPI PUSH2 0x2CDB PUSH2 0x2C82 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CEB DUP2 PUSH2 0x20F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D06 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x2D13 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2CE2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D2F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x2D3C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D87 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x2D94 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DCA PUSH2 0x2DC5 PUSH2 0x2DC0 DUP5 PUSH2 0x2D9B JUMP JUMPDEST PUSH2 0x2DA5 JUMP JUMPDEST PUSH2 0x2135 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2DDA DUP2 PUSH2 0x2DAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2DF5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2DD1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2E28 DUP2 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x2E32 DUP2 DUP7 PUSH2 0x2DFB JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2E4D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2E62 JUMPI PUSH2 0x2E95 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2E95 JUMP JUMPDEST PUSH2 0x2E6B DUP6 PUSH2 0x2E06 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E8D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2E6E JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ED4 PUSH1 0xC DUP4 PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP PUSH2 0x2EDF DUP3 PUSH2 0x2E9E JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF5 DUP3 PUSH2 0x22BD JUMP JUMPDEST PUSH2 0x2EFF DUP2 DUP6 PUSH2 0x2DFB JUMP JUMPDEST SWAP4 POP PUSH2 0x2F0F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x22D9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F51 PUSH1 0x1 DUP4 PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP PUSH2 0x2F5C DUP3 PUSH2 0x2F1B JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9D PUSH1 0x11 DUP4 PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP PUSH2 0x2FA8 DUP3 PUSH2 0x2F67 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FBF DUP3 DUP7 PUSH2 0x2E1B JUMP JUMPDEST SWAP2 POP PUSH2 0x2FCA DUP3 PUSH2 0x2EC7 JUMP JUMPDEST SWAP2 POP PUSH2 0x2FD6 DUP3 DUP6 PUSH2 0x2EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2FE1 DUP3 PUSH2 0x2F44 JUMP JUMPDEST SWAP2 POP PUSH2 0x2FED DUP3 DUP5 PUSH2 0x2EEA JUMP JUMPDEST SWAP2 POP PUSH2 0x2FF8 DUP3 PUSH2 0x2F90 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x3012 DUP2 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x301C DUP2 DUP7 PUSH2 0x22C8 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x3037 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x304D JUMPI PUSH2 0x3080 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3080 JUMP JUMPDEST PUSH2 0x3056 DUP6 PUSH2 0x2E06 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3078 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3059 JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x30A3 DUP2 DUP6 PUSH2 0x3005 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x30B7 DUP2 DUP5 PUSH2 0x2314 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x310D PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x30D0 JUMP JUMPDEST PUSH2 0x3117 DUP7 DUP4 PUSH2 0x30D0 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x314A PUSH2 0x3145 PUSH2 0x3140 DUP5 PUSH2 0x2135 JUMP JUMPDEST PUSH2 0x2DA5 JUMP JUMPDEST PUSH2 0x2135 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3164 DUP4 PUSH2 0x312F JUMP JUMPDEST PUSH2 0x3178 PUSH2 0x3170 DUP3 PUSH2 0x3151 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x30DD JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x318D PUSH2 0x3180 JUMP JUMPDEST PUSH2 0x3198 DUP2 DUP5 DUP5 PUSH2 0x315B JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31BC JUMPI PUSH2 0x31B1 PUSH1 0x0 DUP3 PUSH2 0x3185 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x319E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x3201 JUMPI PUSH2 0x31D2 DUP2 PUSH2 0x2E06 JUMP JUMPDEST PUSH2 0x31DB DUP5 PUSH2 0x30C0 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x31EA JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x31FE PUSH2 0x31F6 DUP6 PUSH2 0x30C0 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x319D JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3224 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x3206 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323D DUP4 DUP4 PUSH2 0x3213 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3256 DUP3 PUSH2 0x22BD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x326F JUMPI PUSH2 0x326E PUSH2 0x2401 JUMP JUMPDEST JUMPDEST PUSH2 0x3279 DUP3 SLOAD PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x3284 DUP3 DUP3 DUP6 PUSH2 0x31C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x32B7 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x32A5 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x32AF DUP6 DUP3 PUSH2 0x3231 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x3317 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x32C5 DUP7 PUSH2 0x2E06 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32ED JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x32C8 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x330A JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x3306 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x3213 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3359 DUP3 PUSH2 0x2135 JUMP JUMPDEST SWAP2 POP PUSH2 0x3364 DUP4 PUSH2 0x2135 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x337C JUMPI PUSH2 0x337B PUSH2 0x331F JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3397 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2CE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3402 PUSH1 0x13 DUP4 PUSH2 0x22C8 JUMP JUMPDEST SWAP2 POP PUSH2 0x340D DUP3 PUSH2 0x33CC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3431 DUP2 PUSH2 0x33F5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3441 DUP2 PUSH2 0x21D5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x345C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3438 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3477 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x3484 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23D2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x34A0 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x34AD PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x34BA PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x34C7 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21AB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34EA DUP2 DUP6 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x34FE DUP2 DUP5 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x352E DUP3 PUSH2 0x3507 JUMP JUMPDEST PUSH2 0x3538 DUP2 DUP6 PUSH2 0x3512 JUMP JUMPDEST SWAP4 POP PUSH2 0x3548 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x22D9 JUMP JUMPDEST PUSH2 0x3551 DUP2 PUSH2 0x2303 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3571 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x357E PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x358B PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21AB JUMP JUMPDEST PUSH2 0x3598 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21AB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x35AA DUP2 DUP5 PUSH2 0x3523 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x35C5 DUP2 PUSH2 0x2201 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E1 JUMPI PUSH2 0x35E0 PUSH2 0x20CD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x35EF DUP5 DUP3 DUP6 ADD PUSH2 0x35B6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x360D PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x361A PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2CE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x362C DUP2 DUP7 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3640 DUP2 DUP6 PUSH2 0x28A3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3654 DUP2 DUP5 PUSH2 0x3523 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 SWAP1 PUSH3 0x492C0A SWAP1 LOG3 0xBF PUSH15 0x872AD5B5976F927F8E47CD1409865 ISZERO 0xB8 PUSH25 0xC9BF129664736F6C634300081A003300000000000000000000 ", + "sourceMap": "336:2621:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2174:263:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2084:103:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3810:120:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4014:429:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:552:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1274:80:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1568:350;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2651:304;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2443:202:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2187:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3156:144:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1360:202:16;;;:::i;:::-;;4642:138:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3367:157:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1924:244:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2247:132:3;2324:7;2350:9;:13;2360:2;2350:13;;;;;;;;;;;:22;2364:7;2350:22;;;;;;;;;;;;;;;;2343:29;;2247:132;;;;:::o;2174:263:16:-;2289:4;2309:30;2317:4;2309:28;;;:30::i;:::-;2305:104;;;2362:36;2386:11;2362:23;:36::i;:::-;2355:43;;;;2305:104;2425:5;2418:12;;2174:263;;;;:::o;2084:103:3:-;2144:13;2176:4;2169:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:103;;;:::o;3810:120:0:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4014:429:3:-;4208:14;4225:12;:10;:12::i;:::-;4208:29;;4259:6;4251:14;;:4;:14;;;;:49;;;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4352:6;4360:4;4323:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4247:129;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;2536:552:3:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:3;:10;2782:8;:15;2744:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2688:121;2819:30;2866:8;:15;2852:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;2972:68;2982:30;3010:1;2982:8;:27;;:30;;;;:::i;:::-;3014:25;3037:1;3014:3;:22;;:25;;;;:::i;:::-;2972:9;:68::i;:::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2934:3;;;;;2893:158;;;;3068:13;3061:20;;;2536:552;;;;:::o;1274:80:16:-;1316:4;1339:8;;1332:15;;1274:80;:::o;1568:350::-;1714:7;1053:22;1067:7;1053:13;:22::i;:::-;1768:1:::1;1737:27;1747:7;1756;1737:9;:27::i;:::-;:32;1733:97;;1802:7;1811;1792:27;;;;;;;;;;;;:::i;:::-;;;;;;;;1733:97;1839:32;1845:7;1854;1863:1;1866:4;1839:5;:32::i;:::-;1900:7;1891;1886:25;;;1909:1;1886:25;;;;;;:::i;:::-;;;;;;;;1568:350:::0;;;;;:::o;2651:304::-;2766:13;2748:7;1053:22;1067:7;1053:13;:22::i;:::-;2851:9:::1;2876:25;2893:7;2876:16;:25::i;:::-;2906:7;2834:100;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2791:157;;2651:304:::0;;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2443:202:16:-;2232:4:0;2506:18:16;;2464:16:0;2475:4;2464:10;:16::i;:::-;2536:26:16::1;2555:6;2536:18;:26::i;:::-;2577:33;2592:9;2603:6;2577:33;;;;;;;:::i;:::-;;;;;;;;2632:6;2620:9;:18;;;;;;:::i;:::-;;2443:202:::0;;:::o;2187:49:0:-;2232:4;2187:49;;;:::o;3156:144:3:-;3241:52;3260:12;:10;:12::i;:::-;3274:8;3284;3241:18;:52::i;:::-;3156:144;;:::o;1360:202:16:-;1396:17;1416:8;;1396:28;;1434:38;1440:10;1452:12;1466:1;1434:38;;;;;;;;;;;;:5;:38::i;:::-;1505:12;1493:10;1487:31;;;;;;;;;;;;1554:1;1539:12;:16;;;;:::i;:::-;1528:8;:27;;;;1386:176;1360:202::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3367:157:3:-;3457:4;3480:18;:27;3499:7;3480:27;;;;;;;;;;;;;;;:37;3508:8;3480:37;;;;;;;;;;;;;;;;;;;;;;;;;3473:44;;3367:157;;;;:::o;3591:351::-;3714:14;3731:12;:10;:12::i;:::-;3714:29;;3765:6;3757:14;;:4;:14;;;;:49;;;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3858:6;3866:4;3829:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3753:129;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;:::-;3704:238;3591:351;;;;;:::o;1924:244:16:-;2043:7;1053:22;1067:7;1053:13;:22::i;:::-;2067:7:::1;2076;1179:10;1168:21;;:7;:21;;;1164:87;;1223:7;1232;1212:28;;;;;;;;;;;;:::i;:::-;;;;;;;;1164:87;2095:26:::2;2101:7;2110;2119:1;2095:5;:26::i;:::-;2150:7;2141;2136:25;;;2159:1;2136:25;;;;;;:::i;:::-;;;;;;;;1085:1:::1;;1924:244:::0;;;;:::o;719:426:12:-;783:4;990:68;1023:7;1032:25;990:32;:68::i;:::-;:148;;;;;1075:63;1108:7;614:10;1117:20;;1075:32;:63::i;:::-;1074:64;990:148;971:167;;719:426;;;:::o;2565:202:0:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9015:445:3:-;9222:1;9208:16;;:2;:16;;;9204:88;;9278:1;9247:34;;;;;;;;;;;:::i;:::-;;;;;;;;9204:88;9321:1;9305:18;;:4;:18;;;9301:88;;9375:1;9346:32;;;;;;;;;;;:::i;:::-;;;;;;;;9301:88;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;:::-;9015:445;;;;;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;4603:197:7:-;4689:11;4777:4;4772:3;4768:14;4761:4;4756:3;4752:14;4748:35;4742:42;4735:49;;4603:197;;;;:::o;4204:::-;4290:11;4378:4;4373:3;4369:14;4362:4;4357:3;4353:14;4349:35;4343:42;4336:49;;4204:197;;;;:::o;681:140:16:-;756:8;;745:7;:19;741:74;;796:7;787:17;;;;;;;;;;;:::i;:::-;;;;;;;;741:74;681:140;:::o;10746:346:3:-;10856:1;10842:16;;:2;:16;;;10838:88;;10912:1;10881:34;;;;;;;;;;;:::i;:::-;;;;;;;;10838:88;10936:20;10958:23;10985:29;11004:2;11008:5;10985:18;:29::i;:::-;10935:79;;;;11024:61;11059:1;11063:2;11067:3;11072:6;11080:4;11024:26;:61::i;:::-;10828:264;;10746:346;;;;:::o;637:698:10:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;13268:315:3:-;13395:1;13375:22;;:8;:22;;;13371:94;;13451:1;13420:34;;;;;;;;;;;:::i;:::-;;;;;;;;13371:94;13512:8;13474:18;:25;13493:5;13474:25;;;;;;;;;;;;;;;:35;13500:8;13474:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13557:8;13535:41;;13550:5;13535:41;;;13567:8;13535:41;;;;;;:::i;:::-;;;;;;;;13268:315;;;:::o;8151:463::-;8287:1;8273:16;;:2;:16;;;8269:88;;8343:1;8312:34;;;;;;;;;;;:::i;:::-;;;;;;;;8269:88;8386:1;8370:18;;:4;:18;;;8366:88;;8440:1;8411:32;;;;;;;;;;;:::i;:::-;;;;;;;;8366:88;8464:20;8486:23;8513:29;8532:2;8536:5;8513:18;:29::i;:::-;8463:79;;;;8552:55;8579:4;8585:2;8589:3;8594:6;8602:4;8552:26;:55::i;:::-;8259:355;;8151:463;;;;;:::o;12099:329::-;12194:1;12178:18;;:4;:18;;;12174:88;;12248:1;12219:32;;;;;;;;;;;:::i;:::-;;;;;;;;12174:88;12272:20;12294:23;12321:29;12340:2;12344:5;12321:18;:29::i;:::-;12271:79;;;;12360:61;12387:4;12401:1;12405:3;12410:6;12360:61;;;;;;;;;;;;:26;:61::i;:::-;12164:264;;12099:329;;;:::o;4397:632:12:-;4499:4;4539:26;4611:11;4568:56;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:85;;4666:12;4688:18;4716:19;4860:4;4854;4838:13;4832:20;4825:4;4810:13;4806:24;4797:7;4790:5;4779:86;4768:97;;4892:16;4878:30;;4942:4;4936:11;4921:26;;4974:7;:29;;;;;4999:4;4985:10;:18;;4974:29;:48;;;;;5021:1;5007:11;:15;4974:48;4967:55;;;;;;4397:632;;;;:::o;1380:305:3:-;1482:4;1532:26;1517:41;;;:11;:41;;;;:109;;;;1589:37;1574:52;;;:11;:52;;;;1517:109;:161;;;;1642:36;1666:11;1642:23;:36::i;:::-;1517:161;1498:180;;1380:305;;;:::o;7004:690::-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;7263:1;7249:16;;:2;:16;;;7245:443;;7281:16;7300:12;:10;:12::i;:::-;7281:31;;7344:1;7330:3;:10;:15;7326:352;;7365:10;7378:25;7401:1;7378:3;:22;;:25;;;;:::i;:::-;7365:38;;7421:13;7437:28;7463:1;7437:6;:25;;:28;;;;:::i;:::-;7421:44;;7483:67;7514:8;7524:4;7530:2;7534;7538:5;7545:4;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;:::-;7326:352;7267:421;7245:443;7004:690;;;;;:::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;16080:849:3:-;16188:23;16213;16374:4;16368:11;16358:21;;16444:1;16436:6;16429:17;16582:8;16575:4;16567:6;16563:17;16556:35;16704:4;16696:6;16692:17;16682:27;;16737:1;16729:6;16722:17;16778:8;16771:4;16763:6;16759:17;16752:35;16907:4;16899:6;16895:17;16889:4;16882:31;16080:849;;;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;762:146:11:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;5144:1281:3:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:3;:10;5353:6;:13;5315:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5261:117;5388:16;5407:12;:10;:12::i;:::-;5388:31;;5435:9;5430:691;5454:3;:10;5450:1;:14;5430:691;;;5485:10;5498:25;5521:1;5498:3;:22;;:25;;;;:::i;:::-;5485:38;;5537:13;5553:28;5579:1;5553:6;:25;;:28;;;;:::i;:::-;5537:44;;5616:1;5600:18;;:4;:18;;;5596:420;;5638:19;5660:9;:13;5670:2;5660:13;;;;;;;;;;;:19;5674:4;5660:19;;;;;;;;;;;;;;;;5638:41;;5715:5;5701:11;:19;5697:129;;;5778:4;5784:11;5797:5;5804:2;5751:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5697:129;5978:5;5964:11;:19;5942:9;:13;5952:2;5942:13;;;;;;;;;;;:19;5956:4;5942:19;;;;;;;;;;;;;;;:41;;;;5620:396;5596:420;6048:1;6034:16;;:2;:16;;;6030:81;;6091:5;6070:9;:13;6080:2;6070:13;;;;;;;;;;;:17;6084:2;6070:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6030:81;5471:650;;5466:3;;;;;5430:691;;;;6149:1;6135:3;:10;:15;6131:288;;6166:10;6179:25;6202:1;6179:3;:22;;:25;;;;:::i;:::-;6166:38;;6218:13;6234:28;6260:1;6234:6;:25;;:28;;;;:::i;:::-;6218:44;;6312:2;6281:45;;6306:4;6281:45;;6296:8;6281:45;;;6316:2;6320:5;6281:45;;;;;;;:::i;:::-;;;;;;;;6152:185;;6131:288;;;6392:2;6362:46;;6386:4;6362:46;;6376:8;6362:46;;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;6131:288;5251:1174;5144:1281;;;;:::o;13761:974::-;13984:1;13967:2;:14;;;:18;13963:766;;;14022:2;14005:38;;;14044:8;14054:4;14060:2;14064:5;14071:4;14005:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:1;14360:6;:13;:18;14356:349;;14487:2;14464:26;;;;;;;;;;;:::i;:::-;;;;;;;;14356:349;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;14137:43;;;14125:55;;;:8;:55;;;;14121:174;;14273:2;14250:26;;;;;;;;;;;:::i;:::-;;;;;;;;14121:174;14077:232;13963:766;13761:974;;;;;;:::o;14923:1041::-;15171:1;15154:2;:14;;;:18;15150:808;;;15209:2;15192:43;;;15236:8;15246:4;15252:3;15257:6;15265:4;15192:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:1;15589:6;:13;:18;15585:349;;15716:2;15693:26;;;;;;;;;;;:::i;:::-;;;;;;;;15585:349;15886:6;15880:13;15871:6;15867:2;15863:15;15856:38;15188:760;15361:48;;;15349:60;;;:8;:60;;;;15345:179;;15502:2;15479:26;;;;;;;;;;;:::i;:::-;;;;;;;;15345:179;15271:267;15150:808;14923:1041;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:248::-;3910:1;3920:113;3934:6;3931:1;3928:13;3920:113;;;4019:1;4014:3;4010:11;4004:18;4000:1;3995:3;3991:11;3984:39;3956:2;3953:1;3949:10;3944:15;;3920:113;;;4067:1;4058:6;4053:3;4049:16;4042:27;3890:186;3828:248;;;:::o;4082:102::-;4123:6;4174:2;4170:7;4165:2;4158:5;4154:14;4150:28;4140:38;;4082:102;;;:::o;4190:377::-;4278:3;4306:39;4339:5;4306:39;:::i;:::-;4361:71;4425:6;4420:3;4361:71;:::i;:::-;4354:78;;4441:65;4499:6;4494:3;4487:4;4480:5;4476:16;4441:65;:::i;:::-;4531:29;4553:6;4531:29;:::i;:::-;4526:3;4522:39;4515:46;;4282:285;4190:377;;;;:::o;4573:313::-;4686:4;4724:2;4713:9;4709:18;4701:26;;4773:9;4767:4;4763:20;4759:1;4748:9;4744:17;4737:47;4801:78;4874:4;4865:6;4801:78;:::i;:::-;4793:86;;4573:313;;;;:::o;4892:77::-;4929:7;4958:5;4947:16;;4892:77;;;:::o;4975:122::-;5048:24;5066:5;5048:24;:::i;:::-;5041:5;5038:35;5028:63;;5087:1;5084;5077:12;5028:63;4975:122;:::o;5103:139::-;5149:5;5187:6;5174:20;5165:29;;5203:33;5230:5;5203:33;:::i;:::-;5103:139;;;;:::o;5248:329::-;5307:6;5356:2;5344:9;5335:7;5331:23;5327:32;5324:119;;;5362:79;;:::i;:::-;5324:119;5482:1;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5453:117;5248:329;;;;:::o;5583:118::-;5670:24;5688:5;5670:24;:::i;:::-;5665:3;5658:37;5583:118;;:::o;5707:222::-;5800:4;5838:2;5827:9;5823:18;5815:26;;5851:71;5919:1;5908:9;5904:17;5895:6;5851:71;:::i;:::-;5707:222;;;;:::o;5935:117::-;6044:1;6041;6034:12;6058:180;6106:77;6103:1;6096:88;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6244:281;6327:27;6349:4;6327:27;:::i;:::-;6319:6;6315:40;6457:6;6445:10;6442:22;6421:18;6409:10;6406:34;6403:62;6400:88;;;6468:18;;:::i;:::-;6400:88;6508:10;6504:2;6497:22;6287:238;6244:281;;:::o;6531:129::-;6565:6;6592:20;;:::i;:::-;6582:30;;6621:33;6649:4;6641:6;6621:33;:::i;:::-;6531:129;;;:::o;6666:311::-;6743:4;6833:18;6825:6;6822:30;6819:56;;;6855:18;;:::i;:::-;6819:56;6905:4;6897:6;6893:17;6885:25;;6965:4;6959;6955:15;6947:23;;6666:311;;;:::o;6983:117::-;7092:1;7089;7082:12;7123:710;7219:5;7244:81;7260:64;7317:6;7260:64;:::i;:::-;7244:81;:::i;:::-;7235:90;;7345:5;7374:6;7367:5;7360:21;7408:4;7401:5;7397:16;7390:23;;7461:4;7453:6;7449:17;7441:6;7437:30;7490:3;7482:6;7479:15;7476:122;;;7509:79;;:::i;:::-;7476:122;7624:6;7607:220;7641:6;7636:3;7633:15;7607:220;;;7716:3;7745:37;7778:3;7766:10;7745:37;:::i;:::-;7740:3;7733:50;7812:4;7807:3;7803:14;7796:21;;7683:144;7667:4;7662:3;7658:14;7651:21;;7607:220;;;7611:21;7225:608;;7123:710;;;;;:::o;7856:370::-;7927:5;7976:3;7969:4;7961:6;7957:17;7953:27;7943:122;;7984:79;;:::i;:::-;7943:122;8101:6;8088:20;8126:94;8216:3;8208:6;8201:4;8193:6;8189:17;8126:94;:::i;:::-;8117:103;;7933:293;7856:370;;;;:::o;8232:117::-;8341:1;8338;8331:12;8355:307;8416:4;8506:18;8498:6;8495:30;8492:56;;;8528:18;;:::i;:::-;8492:56;8566:29;8588:6;8566:29;:::i;:::-;8558:37;;8650:4;8644;8640:15;8632:23;;8355:307;;;:::o;8668:148::-;8766:6;8761:3;8756;8743:30;8807:1;8798:6;8793:3;8789:16;8782:27;8668:148;;;:::o;8822:423::-;8899:5;8924:65;8940:48;8981:6;8940:48;:::i;:::-;8924:65;:::i;:::-;8915:74;;9012:6;9005:5;8998:21;9050:4;9043:5;9039:16;9088:3;9079:6;9074:3;9070:16;9067:25;9064:112;;;9095:79;;:::i;:::-;9064:112;9185:54;9232:6;9227:3;9222;9185:54;:::i;:::-;8905:340;8822:423;;;;;:::o;9264:338::-;9319:5;9368:3;9361:4;9353:6;9349:17;9345:27;9335:122;;9376:79;;:::i;:::-;9335:122;9493:6;9480:20;9518:78;9592:3;9584:6;9577:4;9569:6;9565:17;9518:78;:::i;:::-;9509:87;;9325:277;9264:338;;;;:::o;9608:1509::-;9762:6;9770;9778;9786;9794;9843:3;9831:9;9822:7;9818:23;9814:33;9811:120;;;9850:79;;:::i;:::-;9811:120;9970:1;9995:53;10040:7;10031:6;10020:9;10016:22;9995:53;:::i;:::-;9985:63;;9941:117;10097:2;10123:53;10168:7;10159:6;10148:9;10144:22;10123:53;:::i;:::-;10113:63;;10068:118;10253:2;10242:9;10238:18;10225:32;10284:18;10276:6;10273:30;10270:117;;;10306:79;;:::i;:::-;10270:117;10411:78;10481:7;10472:6;10461:9;10457:22;10411:78;:::i;:::-;10401:88;;10196:303;10566:2;10555:9;10551:18;10538:32;10597:18;10589:6;10586:30;10583:117;;;10619:79;;:::i;:::-;10583:117;10724:78;10794:7;10785:6;10774:9;10770:22;10724:78;:::i;:::-;10714:88;;10509:303;10879:3;10868:9;10864:19;10851:33;10911:18;10903:6;10900:30;10897:117;;;10933:79;;:::i;:::-;10897:117;11038:62;11092:7;11083:6;11072:9;11068:22;11038:62;:::i;:::-;11028:72;;10822:288;9608:1509;;;;;;;;:::o;11123:474::-;11191:6;11199;11248:2;11236:9;11227:7;11223:23;11219:32;11216:119;;;11254:79;;:::i;:::-;11216:119;11374:1;11399:53;11444:7;11435:6;11424:9;11420:22;11399:53;:::i;:::-;11389:63;;11345:117;11501:2;11527:53;11572:7;11563:6;11552:9;11548:22;11527:53;:::i;:::-;11517:63;;11472:118;11123:474;;;;;:::o;11603:311::-;11680:4;11770:18;11762:6;11759:30;11756:56;;;11792:18;;:::i;:::-;11756:56;11842:4;11834:6;11830:17;11822:25;;11902:4;11896;11892:15;11884:23;;11603:311;;;:::o;11937:710::-;12033:5;12058:81;12074:64;12131:6;12074:64;:::i;:::-;12058:81;:::i;:::-;12049:90;;12159:5;12188:6;12181:5;12174:21;12222:4;12215:5;12211:16;12204:23;;12275:4;12267:6;12263:17;12255:6;12251:30;12304:3;12296:6;12293:15;12290:122;;;12323:79;;:::i;:::-;12290:122;12438:6;12421:220;12455:6;12450:3;12447:15;12421:220;;;12530:3;12559:37;12592:3;12580:10;12559:37;:::i;:::-;12554:3;12547:50;12626:4;12621:3;12617:14;12610:21;;12497:144;12481:4;12476:3;12472:14;12465:21;;12421:220;;;12425:21;12039:608;;11937:710;;;;;:::o;12670:370::-;12741:5;12790:3;12783:4;12775:6;12771:17;12767:27;12757:122;;12798:79;;:::i;:::-;12757:122;12915:6;12902:20;12940:94;13030:3;13022:6;13015:4;13007:6;13003:17;12940:94;:::i;:::-;12931:103;;12747:293;12670:370;;;;:::o;13046:894::-;13164:6;13172;13221:2;13209:9;13200:7;13196:23;13192:32;13189:119;;;13227:79;;:::i;:::-;13189:119;13375:1;13364:9;13360:17;13347:31;13405:18;13397:6;13394:30;13391:117;;;13427:79;;:::i;:::-;13391:117;13532:78;13602:7;13593:6;13582:9;13578:22;13532:78;:::i;:::-;13522:88;;13318:302;13687:2;13676:9;13672:18;13659:32;13718:18;13710:6;13707:30;13704:117;;;13740:79;;:::i;:::-;13704:117;13845:78;13915:7;13906:6;13895:9;13891:22;13845:78;:::i;:::-;13835:88;;13630:303;13046:894;;;;;:::o;13946:114::-;14013:6;14047:5;14041:12;14031:22;;13946:114;;;:::o;14066:184::-;14165:11;14199:6;14194:3;14187:19;14239:4;14234:3;14230:14;14215:29;;14066:184;;;;:::o;14256:132::-;14323:4;14346:3;14338:11;;14376:4;14371:3;14367:14;14359:22;;14256:132;;;:::o;14394:108::-;14471:24;14489:5;14471:24;:::i;:::-;14466:3;14459:37;14394:108;;:::o;14508:179::-;14577:10;14598:46;14640:3;14632:6;14598:46;:::i;:::-;14676:4;14671:3;14667:14;14653:28;;14508:179;;;;:::o;14693:113::-;14763:4;14795;14790:3;14786:14;14778:22;;14693:113;;;:::o;14842:732::-;14961:3;14990:54;15038:5;14990:54;:::i;:::-;15060:86;15139:6;15134:3;15060:86;:::i;:::-;15053:93;;15170:56;15220:5;15170:56;:::i;:::-;15249:7;15280:1;15265:284;15290:6;15287:1;15284:13;15265:284;;;15366:6;15360:13;15393:63;15452:3;15437:13;15393:63;:::i;:::-;15386:70;;15479:60;15532:6;15479:60;:::i;:::-;15469:70;;15325:224;15312:1;15309;15305:9;15300:14;;15265:284;;;15269:14;15565:3;15558:10;;14966:608;;;14842:732;;;;:::o;15580:373::-;15723:4;15761:2;15750:9;15746:18;15738:26;;15810:9;15804:4;15800:20;15796:1;15785:9;15781:17;15774:47;15838:108;15941:4;15932:6;15838:108;:::i;:::-;15830:116;;15580:373;;;;:::o;15959:943::-;16054:6;16062;16070;16078;16127:3;16115:9;16106:7;16102:23;16098:33;16095:120;;;16134:79;;:::i;:::-;16095:120;16254:1;16279:53;16324:7;16315:6;16304:9;16300:22;16279:53;:::i;:::-;16269:63;;16225:117;16381:2;16407:53;16452:7;16443:6;16432:9;16428:22;16407:53;:::i;:::-;16397:63;;16352:118;16509:2;16535:53;16580:7;16571:6;16560:9;16556:22;16535:53;:::i;:::-;16525:63;;16480:118;16665:2;16654:9;16650:18;16637:32;16696:18;16688:6;16685:30;16682:117;;;16718:79;;:::i;:::-;16682:117;16823:62;16877:7;16868:6;16857:9;16853:22;16823:62;:::i;:::-;16813:72;;16608:287;15959:943;;;;;;;:::o;16908:308::-;16970:4;17060:18;17052:6;17049:30;17046:56;;;17082:18;;:::i;:::-;17046:56;17120:29;17142:6;17120:29;:::i;:::-;17112:37;;17204:4;17198;17194:15;17186:23;;16908:308;;;:::o;17222:425::-;17300:5;17325:66;17341:49;17383:6;17341:49;:::i;:::-;17325:66;:::i;:::-;17316:75;;17414:6;17407:5;17400:21;17452:4;17445:5;17441:16;17490:3;17481:6;17476:3;17472:16;17469:25;17466:112;;;17497:79;;:::i;:::-;17466:112;17587:54;17634:6;17629:3;17624;17587:54;:::i;:::-;17306:341;17222:425;;;;;:::o;17667:340::-;17723:5;17772:3;17765:4;17757:6;17753:17;17749:27;17739:122;;17780:79;;:::i;:::-;17739:122;17897:6;17884:20;17922:79;17997:3;17989:6;17982:4;17974:6;17970:17;17922:79;:::i;:::-;17913:88;;17729:278;17667:340;;;;:::o;18013:654::-;18091:6;18099;18148:2;18136:9;18127:7;18123:23;18119:32;18116:119;;;18154:79;;:::i;:::-;18116:119;18274:1;18299:53;18344:7;18335:6;18324:9;18320:22;18299:53;:::i;:::-;18289:63;;18245:117;18429:2;18418:9;18414:18;18401:32;18460:18;18452:6;18449:30;18446:117;;;18482:79;;:::i;:::-;18446:117;18587:63;18642:7;18633:6;18622:9;18618:22;18587:63;:::i;:::-;18577:73;;18372:288;18013:654;;;;;:::o;18673:509::-;18742:6;18791:2;18779:9;18770:7;18766:23;18762:32;18759:119;;;18797:79;;:::i;:::-;18759:119;18945:1;18934:9;18930:17;18917:31;18975:18;18967:6;18964:30;18961:117;;;18997:79;;:::i;:::-;18961:117;19102:63;19157:7;19148:6;19137:9;19133:22;19102:63;:::i;:::-;19092:73;;18888:287;18673:509;;;;:::o;19188:116::-;19258:21;19273:5;19258:21;:::i;:::-;19251:5;19248:32;19238:60;;19294:1;19291;19284:12;19238:60;19188:116;:::o;19310:133::-;19353:5;19391:6;19378:20;19369:29;;19407:30;19431:5;19407:30;:::i;:::-;19310:133;;;;:::o;19449:468::-;19514:6;19522;19571:2;19559:9;19550:7;19546:23;19542:32;19539:119;;;19577:79;;:::i;:::-;19539:119;19697:1;19722:53;19767:7;19758:6;19747:9;19743:22;19722:53;:::i;:::-;19712:63;;19668:117;19824:2;19850:50;19892:7;19883:6;19872:9;19868:22;19850:50;:::i;:::-;19840:60;;19795:115;19449:468;;;;;:::o;19923:474::-;19991:6;19999;20048:2;20036:9;20027:7;20023:23;20019:32;20016:119;;;20054:79;;:::i;:::-;20016:119;20174:1;20199:53;20244:7;20235:6;20224:9;20220:22;20199:53;:::i;:::-;20189:63;;20145:117;20301:2;20327:53;20372:7;20363:6;20352:9;20348:22;20327:53;:::i;:::-;20317:63;;20272:118;19923:474;;;;;:::o;20403:1089::-;20507:6;20515;20523;20531;20539;20588:3;20576:9;20567:7;20563:23;20559:33;20556:120;;;20595:79;;:::i;:::-;20556:120;20715:1;20740:53;20785:7;20776:6;20765:9;20761:22;20740:53;:::i;:::-;20730:63;;20686:117;20842:2;20868:53;20913:7;20904:6;20893:9;20889:22;20868:53;:::i;:::-;20858:63;;20813:118;20970:2;20996:53;21041:7;21032:6;21021:9;21017:22;20996:53;:::i;:::-;20986:63;;20941:118;21098:2;21124:53;21169:7;21160:6;21149:9;21145:22;21124:53;:::i;:::-;21114:63;;21069:118;21254:3;21243:9;21239:19;21226:33;21286:18;21278:6;21275:30;21272:117;;;21308:79;;:::i;:::-;21272:117;21413:62;21467:7;21458:6;21447:9;21443:22;21413:62;:::i;:::-;21403:72;;21197:288;20403:1089;;;;;;;;:::o;21498:619::-;21575:6;21583;21591;21640:2;21628:9;21619:7;21615:23;21611:32;21608:119;;;21646:79;;:::i;:::-;21608:119;21766:1;21791:53;21836:7;21827:6;21816:9;21812:22;21791:53;:::i;:::-;21781:63;;21737:117;21893:2;21919:53;21964:7;21955:6;21944:9;21940:22;21919:53;:::i;:::-;21909:63;;21864:118;22021:2;22047:53;22092:7;22083:6;22072:9;22068:22;22047:53;:::i;:::-;22037:63;;21992:118;21498:619;;;;;:::o;22123:180::-;22171:77;22168:1;22161:88;22268:4;22265:1;22258:15;22292:4;22289:1;22282:15;22309:320;22353:6;22390:1;22384:4;22380:12;22370:22;;22437:1;22431:4;22427:12;22458:18;22448:81;;22514:4;22506:6;22502:17;22492:27;;22448:81;22576:2;22568:6;22565:14;22545:18;22542:38;22539:84;;22595:18;;:::i;:::-;22539:84;22360:269;22309:320;;;:::o;22635:118::-;22722:24;22740:5;22722:24;:::i;:::-;22717:3;22710:37;22635:118;;:::o;22759:332::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22931:71;22999:1;22988:9;22984:17;22975:6;22931:71;:::i;:::-;23012:72;23080:2;23069:9;23065:18;23056:6;23012:72;:::i;:::-;22759:332;;;;;:::o;23097:::-;23218:4;23256:2;23245:9;23241:18;23233:26;;23269:71;23337:1;23326:9;23322:17;23313:6;23269:71;:::i;:::-;23350:72;23418:2;23407:9;23403:18;23394:6;23350:72;:::i;:::-;23097:332;;;;;:::o;23435:180::-;23483:77;23480:1;23473:88;23580:4;23577:1;23570:15;23604:4;23601:1;23594:15;23621:332;23742:4;23780:2;23769:9;23765:18;23757:26;;23793:71;23861:1;23850:9;23846:17;23837:6;23793:71;:::i;:::-;23874:72;23942:2;23931:9;23927:18;23918:6;23874:72;:::i;:::-;23621:332;;;;;:::o;23959:85::-;24004:7;24033:5;24022:16;;23959:85;;;:::o;24050:60::-;24078:3;24099:5;24092:12;;24050:60;;;:::o;24116:158::-;24174:9;24207:61;24225:42;24234:32;24260:5;24234:32;:::i;:::-;24225:42;:::i;:::-;24207:61;:::i;:::-;24194:74;;24116:158;;;:::o;24280:147::-;24375:45;24414:5;24375:45;:::i;:::-;24370:3;24363:58;24280:147;;:::o;24433:238::-;24534:4;24572:2;24561:9;24557:18;24549:26;;24585:79;24661:1;24650:9;24646:17;24637:6;24585:79;:::i;:::-;24433:238;;;;:::o;24677:148::-;24779:11;24816:3;24801:18;;24677:148;;;;:::o;24831:141::-;24880:4;24903:3;24895:11;;24926:3;24923:1;24916:14;24960:4;24957:1;24947:18;24939:26;;24831:141;;;:::o;25002:874::-;25105:3;25142:5;25136:12;25171:36;25197:9;25171:36;:::i;:::-;25223:89;25305:6;25300:3;25223:89;:::i;:::-;25216:96;;25343:1;25332:9;25328:17;25359:1;25354:166;;;;25534:1;25529:341;;;;25321:549;;25354:166;25438:4;25434:9;25423;25419:25;25414:3;25407:38;25500:6;25493:14;25486:22;25478:6;25474:35;25469:3;25465:45;25458:52;;25354:166;;25529:341;25596:38;25628:5;25596:38;:::i;:::-;25656:1;25670:154;25684:6;25681:1;25678:13;25670:154;;;25758:7;25752:14;25748:1;25743:3;25739:11;25732:35;25808:1;25799:7;25795:15;25784:26;;25706:4;25703:1;25699:12;25694:17;;25670:154;;;25853:6;25848:3;25844:16;25837:23;;25536:334;;25321:549;;25109:767;;25002:874;;;;:::o;25882:162::-;26022:14;26018:1;26010:6;26006:14;25999:38;25882:162;:::o;26050:402::-;26210:3;26231:85;26313:2;26308:3;26231:85;:::i;:::-;26224:92;;26325:93;26414:3;26325:93;:::i;:::-;26443:2;26438:3;26434:12;26427:19;;26050:402;;;:::o;26458:390::-;26564:3;26592:39;26625:5;26592:39;:::i;:::-;26647:89;26729:6;26724:3;26647:89;:::i;:::-;26640:96;;26745:65;26803:6;26798:3;26791:4;26784:5;26780:16;26745:65;:::i;:::-;26835:6;26830:3;26826:16;26819:23;;26568:280;26458:390;;;;:::o;26854:151::-;26994:3;26990:1;26982:6;26978:14;26971:27;26854:151;:::o;27011:400::-;27171:3;27192:84;27274:1;27269:3;27192:84;:::i;:::-;27185:91;;27285:93;27374:3;27285:93;:::i;:::-;27403:1;27398:3;27394:11;27387:18;;27011:400;;;:::o;27417:167::-;27557:19;27553:1;27545:6;27541:14;27534:43;27417:167;:::o;27590:402::-;27750:3;27771:85;27853:2;27848:3;27771:85;:::i;:::-;27764:92;;27865:93;27954:3;27865:93;:::i;:::-;27983:2;27978:3;27974:12;27967:19;;27590:402;;;:::o;27998:1387::-;28526:3;28548:92;28636:3;28627:6;28548:92;:::i;:::-;28541:99;;28657:148;28801:3;28657:148;:::i;:::-;28650:155;;28822:95;28913:3;28904:6;28822:95;:::i;:::-;28815:102;;28934:148;29078:3;28934:148;:::i;:::-;28927:155;;29099:95;29190:3;29181:6;29099:95;:::i;:::-;29092:102;;29211:148;29355:3;29211:148;:::i;:::-;29204:155;;29376:3;29369:10;;27998:1387;;;;;;:::o;29415:831::-;29500:3;29537:5;29531:12;29566:36;29592:9;29566:36;:::i;:::-;29618:71;29682:6;29677:3;29618:71;:::i;:::-;29611:78;;29720:1;29709:9;29705:17;29736:1;29731:164;;;;29909:1;29904:336;;;;29698:542;;29731:164;29815:4;29811:9;29800;29796:25;29791:3;29784:38;29875:6;29868:14;29861:22;29855:4;29851:33;29846:3;29842:43;29835:50;;29731:164;;29904:336;29971:38;30003:5;29971:38;:::i;:::-;30031:1;30045:154;30059:6;30056:1;30053:13;30045:154;;;30133:7;30127:14;30123:1;30118:3;30114:11;30107:35;30183:1;30174:7;30170:15;30159:26;;30081:4;30078:1;30074:12;30069:17;;30045:154;;;30228:1;30223:3;30219:11;30212:18;;29911:329;;29698:542;;29504:742;;29415:831;;;;:::o;30252:508::-;30410:4;30448:2;30437:9;30433:18;30425:26;;30497:9;30491:4;30487:20;30483:1;30472:9;30468:17;30461:47;30525:75;30595:4;30586:6;30525:75;:::i;:::-;30517:83;;30647:9;30641:4;30637:20;30632:2;30621:9;30617:18;30610:48;30675:78;30748:4;30739:6;30675:78;:::i;:::-;30667:86;;30252:508;;;;;:::o;30766:93::-;30803:6;30850:2;30845;30838:5;30834:14;30830:23;30820:33;;30766:93;;;:::o;30865:107::-;30909:8;30959:5;30953:4;30949:16;30928:37;;30865:107;;;;:::o;30978:393::-;31047:6;31097:1;31085:10;31081:18;31120:97;31150:66;31139:9;31120:97;:::i;:::-;31238:39;31268:8;31257:9;31238:39;:::i;:::-;31226:51;;31310:4;31306:9;31299:5;31295:21;31286:30;;31359:4;31349:8;31345:19;31338:5;31335:30;31325:40;;31054:317;;30978:393;;;;;:::o;31377:142::-;31427:9;31460:53;31478:34;31487:24;31505:5;31487:24;:::i;:::-;31478:34;:::i;:::-;31460:53;:::i;:::-;31447:66;;31377:142;;;:::o;31525:75::-;31568:3;31589:5;31582:12;;31525:75;;;:::o;31606:269::-;31716:39;31747:7;31716:39;:::i;:::-;31777:91;31826:41;31850:16;31826:41;:::i;:::-;31818:6;31811:4;31805:11;31777:91;:::i;:::-;31771:4;31764:105;31682:193;31606:269;;;:::o;31881:73::-;31926:3;31881:73;:::o;31960:189::-;32037:32;;:::i;:::-;32078:65;32136:6;32128;32122:4;32078:65;:::i;:::-;32013:136;31960:189;;:::o;32155:186::-;32215:120;32232:3;32225:5;32222:14;32215:120;;;32286:39;32323:1;32316:5;32286:39;:::i;:::-;32259:1;32252:5;32248:13;32239:22;;32215:120;;;32155:186;;:::o;32347:543::-;32448:2;32443:3;32440:11;32437:446;;;32482:38;32514:5;32482:38;:::i;:::-;32566:29;32584:10;32566:29;:::i;:::-;32556:8;32552:44;32749:2;32737:10;32734:18;32731:49;;;32770:8;32755:23;;32731:49;32793:80;32849:22;32867:3;32849:22;:::i;:::-;32839:8;32835:37;32822:11;32793:80;:::i;:::-;32452:431;;32437:446;32347:543;;;:::o;32896:117::-;32950:8;33000:5;32994:4;32990:16;32969:37;;32896:117;;;;:::o;33019:169::-;33063:6;33096:51;33144:1;33140:6;33132:5;33129:1;33125:13;33096:51;:::i;:::-;33092:56;33177:4;33171;33167:15;33157:25;;33070:118;33019:169;;;;:::o;33193:295::-;33269:4;33415:29;33440:3;33434:4;33415:29;:::i;:::-;33407:37;;33477:3;33474:1;33470:11;33464:4;33461:21;33453:29;;33193:295;;;;:::o;33493:1395::-;33610:37;33643:3;33610:37;:::i;:::-;33712:18;33704:6;33701:30;33698:56;;;33734:18;;:::i;:::-;33698:56;33778:38;33810:4;33804:11;33778:38;:::i;:::-;33863:67;33923:6;33915;33909:4;33863:67;:::i;:::-;33957:1;33981:4;33968:17;;34013:2;34005:6;34002:14;34030:1;34025:618;;;;34687:1;34704:6;34701:77;;;34753:9;34748:3;34744:19;34738:26;34729:35;;34701:77;34804:67;34864:6;34857:5;34804:67;:::i;:::-;34798:4;34791:81;34660:222;33995:887;;34025:618;34077:4;34073:9;34065:6;34061:22;34111:37;34143:4;34111:37;:::i;:::-;34170:1;34184:208;34198:7;34195:1;34192:14;34184:208;;;34277:9;34272:3;34268:19;34262:26;34254:6;34247:42;34328:1;34320:6;34316:14;34306:24;;34375:2;34364:9;34360:18;34347:31;;34221:4;34218:1;34214:12;34209:17;;34184:208;;;34420:6;34411:7;34408:19;34405:179;;;34478:9;34473:3;34469:19;34463:26;34521:48;34563:4;34555:6;34551:17;34540:9;34521:48;:::i;:::-;34513:6;34506:64;34428:156;34405:179;34630:1;34626;34618:6;34614:14;34610:22;34604:4;34597:36;34032:611;;;33995:887;;33585:1303;;;33493:1395;;:::o;34894:180::-;34942:77;34939:1;34932:88;35039:4;35036:1;35029:15;35063:4;35060:1;35053:15;35080:191;35120:3;35139:20;35157:1;35139:20;:::i;:::-;35134:25;;35173:20;35191:1;35173:20;:::i;:::-;35168:25;;35216:1;35213;35209:9;35202:16;;35237:3;35234:1;35231:10;35228:36;;;35244:18;;:::i;:::-;35228:36;35080:191;;;;:::o;35277:222::-;35370:4;35408:2;35397:9;35393:18;35385:26;;35421:71;35489:1;35478:9;35474:17;35465:6;35421:71;:::i;:::-;35277:222;;;;:::o;35505:180::-;35553:77;35550:1;35543:88;35650:4;35647:1;35640:15;35674:4;35671:1;35664:15;35691:169;35831:21;35827:1;35819:6;35815:14;35808:45;35691:169;:::o;35866:366::-;36008:3;36029:67;36093:2;36088:3;36029:67;:::i;:::-;36022:74;;36105:93;36194:3;36105:93;:::i;:::-;36223:2;36218:3;36214:12;36207:19;;35866:366;;;:::o;36238:419::-;36404:4;36442:2;36431:9;36427:18;36419:26;;36491:9;36485:4;36481:20;36477:1;36466:9;36462:17;36455:47;36519:131;36645:4;36519:131;:::i;:::-;36511:139;;36238:419;;;:::o;36663:115::-;36748:23;36765:5;36748:23;:::i;:::-;36743:3;36736:36;36663:115;;:::o;36784:218::-;36875:4;36913:2;36902:9;36898:18;36890:26;;36926:69;36992:1;36981:9;36977:17;36968:6;36926:69;:::i;:::-;36784:218;;;;:::o;37008:332::-;37129:4;37167:2;37156:9;37152:18;37144:26;;37180:71;37248:1;37237:9;37233:17;37224:6;37180:71;:::i;:::-;37261:72;37329:2;37318:9;37314:18;37305:6;37261:72;:::i;:::-;37008:332;;;;;:::o;37346:553::-;37523:4;37561:3;37550:9;37546:19;37538:27;;37575:71;37643:1;37632:9;37628:17;37619:6;37575:71;:::i;:::-;37656:72;37724:2;37713:9;37709:18;37700:6;37656:72;:::i;:::-;37738;37806:2;37795:9;37791:18;37782:6;37738:72;:::i;:::-;37820;37888:2;37877:9;37873:18;37864:6;37820:72;:::i;:::-;37346:553;;;;;;;:::o;37905:634::-;38126:4;38164:2;38153:9;38149:18;38141:26;;38213:9;38207:4;38203:20;38199:1;38188:9;38184:17;38177:47;38241:108;38344:4;38335:6;38241:108;:::i;:::-;38233:116;;38396:9;38390:4;38386:20;38381:2;38370:9;38366:18;38359:48;38424:108;38527:4;38518:6;38424:108;:::i;:::-;38416:116;;37905:634;;;;;:::o;38545:98::-;38596:6;38630:5;38624:12;38614:22;;38545:98;;;:::o;38649:168::-;38732:11;38766:6;38761:3;38754:19;38806:4;38801:3;38797:14;38782:29;;38649:168;;;;:::o;38823:373::-;38909:3;38937:38;38969:5;38937:38;:::i;:::-;38991:70;39054:6;39049:3;38991:70;:::i;:::-;38984:77;;39070:65;39128:6;39123:3;39116:4;39109:5;39105:16;39070:65;:::i;:::-;39160:29;39182:6;39160:29;:::i;:::-;39155:3;39151:39;39144:46;;38913:283;38823:373;;;;:::o;39202:751::-;39425:4;39463:3;39452:9;39448:19;39440:27;;39477:71;39545:1;39534:9;39530:17;39521:6;39477:71;:::i;:::-;39558:72;39626:2;39615:9;39611:18;39602:6;39558:72;:::i;:::-;39640;39708:2;39697:9;39693:18;39684:6;39640:72;:::i;:::-;39722;39790:2;39779:9;39775:18;39766:6;39722:72;:::i;:::-;39842:9;39836:4;39832:20;39826:3;39815:9;39811:19;39804:49;39870:76;39941:4;39932:6;39870:76;:::i;:::-;39862:84;;39202:751;;;;;;;;:::o;39959:141::-;40015:5;40046:6;40040:13;40031:22;;40062:32;40088:5;40062:32;:::i;:::-;39959:141;;;;:::o;40106:349::-;40175:6;40224:2;40212:9;40203:7;40199:23;40195:32;40192:119;;;40230:79;;:::i;:::-;40192:119;40350:1;40375:63;40430:7;40421:6;40410:9;40406:22;40375:63;:::i;:::-;40365:73;;40321:127;40106:349;;;;:::o;40461:1053::-;40784:4;40822:3;40811:9;40807:19;40799:27;;40836:71;40904:1;40893:9;40889:17;40880:6;40836:71;:::i;:::-;40917:72;40985:2;40974:9;40970:18;40961:6;40917:72;:::i;:::-;41036:9;41030:4;41026:20;41021:2;41010:9;41006:18;40999:48;41064:108;41167:4;41158:6;41064:108;:::i;:::-;41056:116;;41219:9;41213:4;41209:20;41204:2;41193:9;41189:18;41182:48;41247:108;41350:4;41341:6;41247:108;:::i;:::-;41239:116;;41403:9;41397:4;41393:20;41387:3;41376:9;41372:19;41365:49;41431:76;41502:4;41493:6;41431:76;:::i;:::-;41423:84;;40461:1053;;;;;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "isApprovedForAll(address,address)": "e985e9c5", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "updateBaseURI(string)": "931688cb", + "uri(uint256)": "0e89341c", + "uri(uint256,string)": "76b676f1" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenURI_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"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\":\"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\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"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. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"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 `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"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. May emit a {RoleRevoked} event.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Engagement.sol\":\"Engagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Engagement.sol\":{\"keccak256\":\"0x5baa8d3858b5e88ca85c5549457d325e6049ecb8089cbf50fc74e903412d9191\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9411980b91a66ac79962526b7e1a3f59064841c6a4e5260886b9cc49f20d164d\",\"dweb:/ipfs/Qmbx9uk7Abo5KLLFSgHjCmzBkv6z95fcqiXubSoxVbXh6f\"]},\"contracts/IEngagement.sol\":{\"keccak256\":\"0xa2dab07d3e3c29821cbe694f4af5f4dc1dcd5b78a5cc8836e59e2c65dfad9980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://cc942a2da3b66a1fac79201458cc518d07ba2f5431478ab0d99c826c6bc3c153\",\"dweb:/ipfs/QmfLXi2AqXUSpGrR6xGnNwTteAQoCvkDWb2pKmDmAqfWXB\"]}},\"version\":1}" + } + }, + "contracts/IEngagement.sol": { + "IEngagement": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "updateBaseURI(string)": "931688cb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IEngagement.sol\":\"IEngagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IEngagement.sol\":{\"keccak256\":\"0xa2dab07d3e3c29821cbe694f4af5f4dc1dcd5b78a5cc8836e59e2c65dfad9980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://cc942a2da3b66a1fac79201458cc518d07ba2f5431478ab0d99c826c6bc3c153\",\"dweb:/ipfs/QmfLXi2AqXUSpGrR6xGnNwTteAQoCvkDWb2pKmDmAqfWXB\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155420/deployed_addresses.json b/ignition/deployments/chain-11155420/deployed_addresses.json new file mode 100644 index 0000000..ec5c485 --- /dev/null +++ b/ignition/deployments/chain-11155420/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "EngagementModule#Engagement": "0xd826769f1844CC83A16923D2AEF8a479E62Da732" +} diff --git a/ignition/deployments/chain-11155420/journal.jsonl b/ignition/deployments/chain-11155420/journal.jsonl new file mode 100644 index 0000000..1b6fa4a --- /dev/null +++ b/ignition/deployments/chain-11155420/journal.jsonl @@ -0,0 +1,7 @@ + +{"chainId":11155420,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"EngagementModule#Engagement","constructorArgs":["http://127.0.0.1:8545/"],"contractName":"Engagement","dependencies":[],"from":"0x026b727b60d336806b87d60e95b6d7fad2443dd6","futureId":"EngagementModule#Engagement","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"EngagementModule#Engagement","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051613e29380380613e29833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613696806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a6004803603810190610145919061216b565b6103f2565b60405161015791906121ba565b60405180910390f35b61017a6004803603810190610175919061222d565b61044c565b6040516101879190612275565b60405180910390f35b6101aa60048036038101906101a59190612290565b61048c565b6040516101b7919061234d565b60405180910390f35b6101da60048036038101906101d591906123a5565b610520565b6040516101e791906123e1565b60405180910390f35b61020a600480360381019061020591906125f9565b610540565b005b610226600480360381019061022191906126c8565b6105e8565b005b610242600480360381019061023d91906126c8565b61060a565b005b61025e600480360381019061025991906127cb565b610685565b60405161026b9190612901565b60405180910390f35b61027c61078e565b60405161028991906121ba565b60405180910390f35b6102ac60048036038101906102a79190612923565b610798565b005b6102c860048036038101906102c39190612a47565b610856565b6040516102d5919061234d565b60405180910390f35b6102f860048036038101906102f391906126c8565b610898565b6040516103059190612275565b60405180910390f35b61032860048036038101906103239190612aa3565b610903565b005b610332610967565b60405161033f91906123e1565b60405180910390f35b610362600480360381019061035d9190612b18565b61096e565b005b61036c610984565b005b610388600480360381019061038391906126c8565b610a01565b005b6103a4600480360381019061039f9190612b58565b610a23565b6040516103b19190612275565b60405180910390f35b6103d460048036038101906103cf9190612b98565b610ab7565b005b6103f060048036038101906103eb9190612c2f565b610b5f565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c41565b156104825761047b82610c8e565b9050610487565b600090505b919050565b60606002805461049b90612cb1565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cb1565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a23565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612cf1565b60405180910390fd5b6105e08686868686610d10565b505050505050565b6105f182610520565b6105fa81610e08565b6106048383610e1c565b50505050565b610612610d08565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f0e565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d1a565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612401565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761100190919063ffffffff16565b610754838761101590919063ffffffff16565b6103f2565b82828151811061076c5761076b612d43565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a281611029565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612d72565b60405180910390fd5b6107ff8585600185611072565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612de0565b60405180910390a35050505050565b60608261086281611029565b600561086d8561110b565b8460405160200161088093929190612fb3565b60405160208183030381529060405291505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61091081610e08565b610919826111d9565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161094b929190613089565b60405180910390a18160059081610962919061324d565b505050565b6000801b81565b610980610979610d08565b8383611220565b5050565b600060045490506109a73382600160405180602001604052806000815250611072565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36001816109f8919061334e565b60048190555050565b610a0a82610520565b610a1381610e08565b610a1d8383610f0e565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ac1610d08565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b065750610b048682610a23565b155b15610b4a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b41929190612cf1565b60405180910390fd5b610b578686868686611390565b505050505050565b81610b6981611029565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610bdd5781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610bd4929190612d72565b60405180910390fd5b610be98686600161149b565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c319190612de0565b60405180910390a3505050505050565b6000610c6d827f01ffc9a700000000000000000000000000000000000000000000000000000000611542565b8015610c875750610c858263ffffffff60e01b611542565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d015750610d00826115e1565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d825760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d799190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610df45760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610deb9190613382565b60405180910390fd5b610e0185858585856116c3565b5050505050565b610e1981610e14610d08565b611775565b50565b6000610e288383610898565b610f035760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ea0610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f08565b600090505b92915050565b6000610f1a8383610898565b15610ff65760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f93610d08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610ffb565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600454811061106f57806040517fc80a970c00000000000000000000000000000000000000000000000000000000815260040161106691906121ba565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110e45760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016110db9190613382565b60405180910390fd5b6000806110f185856117c6565b915091506111036000878484876116c3565b505050505050565b60606000600161111a846117f6565b01905060008167ffffffffffffffff81111561113957611138612401565b5b6040519080825280601f01601f19166020018201604052801561116b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156111ce578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111c2576111c161339d565b5b04945060008503611179575b819350505050919050565b600081510361121d576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161121490613418565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112925760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112899190613382565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113839190612275565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114025760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f99190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114745760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161146b9190613382565b60405180910390fd5b60008061148185856117c6565b9150915061149287878484876116c3565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150d5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016115049190613382565b60405180910390fd5b60008061151a84846117c6565b9150915061153b8560008484604051806020016040528060008152506116c3565b5050505050565b600080826040516024016115569190613447565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d915060005190508280156115c9575060208210155b80156115d55750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116ac57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116bc57506116bb82611949565b5b9050919050565b6116cf858585856119b3565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461176e57600061170d610d08565b9050600184510361175d57600061172e60008661101590919063ffffffff16565b9050600061174660008661101590919063ffffffff16565b9050611756838989858589611d5b565b505061176c565b61176b818787878787611f0f565b5b505b5050505050565b61177f8282610898565b6117c25780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117b9929190613462565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611854577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161184a5761184961339d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611891576d04ee2d6d415b85acef810000000083816118875761188661339d565b5b0492506020810190505b662386f26fc1000083106118c057662386f26fc1000083816118b6576118b561339d565b5b0492506010810190505b6305f5e10083106118e9576305f5e10083816118df576118de61339d565b5b0492506008810190505b612710831061190e5761271083816119045761190361339d565b5b0492506004810190505b6064831061193157606483816119275761192661339d565b5b0492506002810190505b600a8310611940576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b80518251146119fd57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016119f4929190612d1a565b60405180910390fd5b6000611a07610d08565b905060005b8351811015611c16576000611a2a828661101590919063ffffffff16565b90506000611a41838661101590919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b6e57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b1657888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b0d949392919061348b565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c09578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c01919061334e565b925050819055505b5050806001019050611a0c565b506001835103611cd5576000611c3660008561101590919063ffffffff16565b90506000611c4e60008561101590919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611cc6929190612d1a565b60405180910390a45050611d54565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d4b9291906134d0565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f07578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611dbc95949392919061355c565b6020604051808303816000875af1925050508015611df857506040513d601f19601f82011682018060405250810190611df591906135cb565b60015b611e7c573d8060008114611e28576040519150601f19603f3d011682016040523d82523d6000602084013e611e2d565b606091505b506000815103611e7457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e6b9190613382565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611efc9190613382565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156120bb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f709594939291906135f8565b6020604051808303816000875af1925050508015611fac57506040513d601f19601f82011682018060405250810190611fa991906135cb565b60015b612030573d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50600081510361202857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161201f9190613382565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120b957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120b09190613382565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612102826120d7565b9050919050565b612112816120f7565b811461211d57600080fd5b50565b60008135905061212f81612109565b92915050565b6000819050919050565b61214881612135565b811461215357600080fd5b50565b6000813590506121658161213f565b92915050565b60008060408385031215612182576121816120cd565b5b600061219085828601612120565b92505060206121a185828601612156565b9150509250929050565b6121b481612135565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61220a816121d5565b811461221557600080fd5b50565b60008135905061222781612201565b92915050565b600060208284031215612243576122426120cd565b5b600061225184828501612218565b91505092915050565b60008115159050919050565b61226f8161225a565b82525050565b600060208201905061228a6000830184612266565b92915050565b6000602082840312156122a6576122a56120cd565b5b60006122b484828501612156565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122f75780820151818401526020810190506122dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061231f826122bd565b61232981856122c8565b93506123398185602086016122d9565b61234281612303565b840191505092915050565b600060208201905081810360008301526123678184612314565b905092915050565b6000819050919050565b6123828161236f565b811461238d57600080fd5b50565b60008135905061239f81612379565b92915050565b6000602082840312156123bb576123ba6120cd565b5b60006123c984828501612390565b91505092915050565b6123db8161236f565b82525050565b60006020820190506123f660008301846123d2565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61243982612303565b810181811067ffffffffffffffff8211171561245857612457612401565b5b80604052505050565b600061246b6120c3565b90506124778282612430565b919050565b600067ffffffffffffffff82111561249757612496612401565b5b602082029050602081019050919050565b600080fd5b60006124c06124bb8461247c565b612461565b905080838252602082019050602084028301858111156124e3576124e26124a8565b5b835b8181101561250c57806124f88882612156565b8452602084019350506020810190506124e5565b5050509392505050565b600082601f83011261252b5761252a6123fc565b5b813561253b8482602086016124ad565b91505092915050565b600080fd5b600067ffffffffffffffff82111561256457612563612401565b5b61256d82612303565b9050602081019050919050565b82818337600083830152505050565b600061259c61259784612549565b612461565b9050828152602081018484840111156125b8576125b7612544565b5b6125c384828561257a565b509392505050565b600082601f8301126125e0576125df6123fc565b5b81356125f0848260208601612589565b91505092915050565b600080600080600060a08688031215612615576126146120cd565b5b600061262388828901612120565b955050602061263488828901612120565b945050604086013567ffffffffffffffff811115612655576126546120d2565b5b61266188828901612516565b935050606086013567ffffffffffffffff811115612682576126816120d2565b5b61268e88828901612516565b925050608086013567ffffffffffffffff8111156126af576126ae6120d2565b5b6126bb888289016125cb565b9150509295509295909350565b600080604083850312156126df576126de6120cd565b5b60006126ed85828601612390565b92505060206126fe85828601612120565b9150509250929050565b600067ffffffffffffffff82111561272357612722612401565b5b602082029050602081019050919050565b600061274761274284612708565b612461565b9050808382526020820190506020840283018581111561276a576127696124a8565b5b835b81811015612793578061277f8882612120565b84526020840193505060208101905061276c565b5050509392505050565b600082601f8301126127b2576127b16123fc565b5b81356127c2848260208601612734565b91505092915050565b600080604083850312156127e2576127e16120cd565b5b600083013567ffffffffffffffff811115612800576127ff6120d2565b5b61280c8582860161279d565b925050602083013567ffffffffffffffff81111561282d5761282c6120d2565b5b61283985828601612516565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61287881612135565b82525050565b600061288a838361286f565b60208301905092915050565b6000602082019050919050565b60006128ae82612843565b6128b8818561284e565b93506128c38361285f565b8060005b838110156128f45781516128db888261287e565b97506128e683612896565b9250506001810190506128c7565b5085935050505092915050565b6000602082019050818103600083015261291b81846128a3565b905092915050565b6000806000806080858703121561293d5761293c6120cd565b5b600061294b87828801612120565b945050602061295c87828801612156565b935050604061296d87828801612156565b925050606085013567ffffffffffffffff81111561298e5761298d6120d2565b5b61299a878288016125cb565b91505092959194509250565b600067ffffffffffffffff8211156129c1576129c0612401565b5b6129ca82612303565b9050602081019050919050565b60006129ea6129e5846129a6565b612461565b905082815260208101848484011115612a0657612a05612544565b5b612a1184828561257a565b509392505050565b600082601f830112612a2e57612a2d6123fc565b5b8135612a3e8482602086016129d7565b91505092915050565b60008060408385031215612a5e57612a5d6120cd565b5b6000612a6c85828601612156565b925050602083013567ffffffffffffffff811115612a8d57612a8c6120d2565b5b612a9985828601612a19565b9150509250929050565b600060208284031215612ab957612ab86120cd565b5b600082013567ffffffffffffffff811115612ad757612ad66120d2565b5b612ae384828501612a19565b91505092915050565b612af58161225a565b8114612b0057600080fd5b50565b600081359050612b1281612aec565b92915050565b60008060408385031215612b2f57612b2e6120cd565b5b6000612b3d85828601612120565b9250506020612b4e85828601612b03565b9150509250929050565b60008060408385031215612b6f57612b6e6120cd565b5b6000612b7d85828601612120565b9250506020612b8e85828601612120565b9150509250929050565b600080600080600060a08688031215612bb457612bb36120cd565b5b6000612bc288828901612120565b9550506020612bd388828901612120565b9450506040612be488828901612156565b9350506060612bf588828901612156565b925050608086013567ffffffffffffffff811115612c1657612c156120d2565b5b612c22888289016125cb565b9150509295509295909350565b600080600060608486031215612c4857612c476120cd565b5b6000612c5686828701612120565b9350506020612c6786828701612156565b9250506040612c7886828701612156565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612cc957607f821691505b602082108103612cdc57612cdb612c82565b5b50919050565b612ceb816120f7565b82525050565b6000604082019050612d066000830185612ce2565b612d136020830184612ce2565b9392505050565b6000604082019050612d2f60008301856121ab565b612d3c60208301846121ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612d876000830185612ce2565b612d9460208301846121ab565b9392505050565b6000819050919050565b6000819050919050565b6000612dca612dc5612dc084612d9b565b612da5565b612135565b9050919050565b612dda81612daf565b82525050565b6000602082019050612df56000830184612dd1565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612e2881612cb1565b612e328186612dfb565b94506001821660008114612e4d5760018114612e6257612e95565b60ff1983168652811515820286019350612e95565b612e6b85612e06565b60005b83811015612e8d57815481890152600182019150602081019050612e6e565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612ed4600c83612dfb565b9150612edf82612e9e565b600c82019050919050565b6000612ef5826122bd565b612eff8185612dfb565b9350612f0f8185602086016122d9565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f51600183612dfb565b9150612f5c82612f1b565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b6000612f9d601183612dfb565b9150612fa882612f67565b601182019050919050565b6000612fbf8286612e1b565b9150612fca82612ec7565b9150612fd68285612eea565b9150612fe182612f44565b9150612fed8284612eea565b9150612ff882612f90565b9150819050949350505050565b6000815461301281612cb1565b61301c81866122c8565b94506001821660008114613037576001811461304d57613080565b60ff198316865281151560200286019350613080565b61305685612e06565b60005b8381101561307857815481890152600182019150602081019050613059565b808801955050505b50505092915050565b600060408201905081810360008301526130a38185613005565b905081810360208301526130b78184612314565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261310d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130d0565b61311786836130d0565b95508019841693508086168417925050509392505050565b600061314a61314561314084612135565b612da5565b612135565b9050919050565b6000819050919050565b6131648361312f565b61317861317082613151565b8484546130dd565b825550505050565b600090565b61318d613180565b61319881848461315b565b505050565b5b818110156131bc576131b1600082613185565b60018101905061319e565b5050565b601f821115613201576131d281612e06565b6131db846130c0565b810160208510156131ea578190505b6131fe6131f6856130c0565b83018261319d565b50505b505050565b600082821c905092915050565b600061322460001984600802613206565b1980831691505092915050565b600061323d8383613213565b9150826002028217905092915050565b613256826122bd565b67ffffffffffffffff81111561326f5761326e612401565b5b6132798254612cb1565b6132848282856131c0565b600060209050601f8311600181146132b757600084156132a5578287015190505b6132af8582613231565b865550613317565b601f1984166132c586612e06565b60005b828110156132ed578489015182556001820191506020850194506020810190506132c8565b8683101561330a5784890151613306601f891682613213565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061335982612135565b915061336483612135565b925082820190508082111561337c5761337b61331f565b5b92915050565b60006020820190506133976000830184612ce2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134026013836122c8565b915061340d826133cc565b602082019050919050565b60006020820190508181036000830152613431816133f5565b9050919050565b613441816121d5565b82525050565b600060208201905061345c6000830184613438565b92915050565b60006040820190506134776000830185612ce2565b61348460208301846123d2565b9392505050565b60006080820190506134a06000830187612ce2565b6134ad60208301866121ab565b6134ba60408301856121ab565b6134c760608301846121ab565b95945050505050565b600060408201905081810360008301526134ea81856128a3565b905081810360208301526134fe81846128a3565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061352e82613507565b6135388185613512565b93506135488185602086016122d9565b61355181612303565b840191505092915050565b600060a0820190506135716000830188612ce2565b61357e6020830187612ce2565b61358b60408301866121ab565b61359860608301856121ab565b81810360808301526135aa8184613523565b90509695505050505050565b6000815190506135c581612201565b92915050565b6000602082840312156135e1576135e06120cd565b5b60006135ef848285016135b6565b91505092915050565b600060a08201905061360d6000830188612ce2565b61361a6020830187612ce2565b818103604083015261362c81866128a3565b9050818103606083015261364081856128a3565b905081810360808301526136548184613523565b9050969550505050505056fea2646970667358221220f89062492c0a90a3bf6e0872ad5b5976f927f8e47cd140986515b878c9bf129664736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000016687474703a2f2f3132372e302e302e313a383534352f00000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"EngagementModule#Engagement","networkInteractionId":1,"nonce":5,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000504"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xc93bd3dfbbc636e8e90d4c576381c3eccfe373dec2b715f246814aa7ca2fe541"},"type":"TRANSACTION_SEND"} +{"futureId":"EngagementModule#Engagement","hash":"0xc93bd3dfbbc636e8e90d4c576381c3eccfe373dec2b715f246814aa7ca2fe541","networkInteractionId":1,"receipt":{"blockHash":"0x5ed834f769097fc0e81c7a9331a9ce00fd64868783b7b781b607850f627b4964","blockNumber":20403533,"contractAddress":"0xd826769f1844CC83A16923D2AEF8a479E62Da732","logs":[{"address":"0xd826769f1844CC83A16923D2AEF8a479E62Da732","data":"0x","logIndex":13,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000026b727b60d336806b87d60e95b6d7fad2443dd6","0x000000000000000000000000026b727b60d336806b87d60e95b6d7fad2443dd6"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"EngagementModule#Engagement","result":{"address":"0xd826769f1844CC83A16923D2AEF8a479E62Da732","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/package.json b/package.json index 3c2e420..9f49344 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "format": "npx @biomejs/biome format --write ./test ./ignition/modules", "ci": "npx @biomejs/biome ci ./test ./ignition/modules", "deploy:localhost": "npx hardhat run ./scripts/deploy.ts --network localhost", + "deploy:sepolia": "npx hardhat run ./scripts/deploy.ts --network sepolia", "deploy:optimismSepolia": "npx hardhat run ./scripts/deploy.ts --network optimismSepolia" } }