diff --git a/hardhat.config.ts b/hardhat.config.ts index 3bd6862..33dbe57 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,8 +1,27 @@ -import { HardhatUserConfig } from "hardhat/config"; +import { vars, HardhatUserConfig } from "hardhat/config"; import "@nomicfoundation/hardhat-toolbox"; +const INFURA_API_KEY = vars.get("INFURA_API_KEY"); +const PRIVATE_KEY = vars.get("PRIVATE_KEY"); +const ETHERSCAN_API_KEY = vars.get("ETHERSCAN_API_KEY"); + const config: HardhatUserConfig = { solidity: "0.8.24", + networks: { + mainnet: { + url: `https://mainnet.infura.io/v3/${INFURA_API_KEY}`, + accounts: [PRIVATE_KEY], + }, + sepolia: { + url: `https://sepolia.infura.io/v3/${INFURA_API_KEY}`, + accounts: [PRIVATE_KEY], + }, + }, + etherscan: { + apiKey: { + mainnet: ETHERSCAN_API_KEY, + }, + }, }; export default config; diff --git a/ignition/deployments/chain-1/artifacts/OffchainResolverModule#OffchainResolver.dbg.json b/ignition/deployments/chain-1/artifacts/OffchainResolverModule#OffchainResolver.dbg.json new file mode 100644 index 0000000..3368af0 --- /dev/null +++ b/ignition/deployments/chain-1/artifacts/OffchainResolverModule#OffchainResolver.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/eb7a073755a6bca5e391672b677e5a6b.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-1/artifacts/OffchainResolverModule#OffchainResolver.json b/ignition/deployments/chain-1/artifacts/OffchainResolverModule#OffchainResolver.json new file mode 100644 index 0000000..aaf2cc1 --- /dev/null +++ b/ignition/deployments/chain-1/artifacts/OffchainResolverModule#OffchainResolver.json @@ -0,0 +1,361 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OffchainResolver", + "sourceName": "contracts/OffchainResolver.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "string[]", + "name": "urls", + "type": "string[]" + }, + { + "internalType": "bytes", + "name": "callData", + "type": "bytes" + }, + { + "internalType": "bytes4", + "name": "callbackFunction", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "OffchainLookup", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + } + ], + "name": "NewSigners", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_url", + "type": "string" + }, + { + "internalType": "address[]", + "name": "_signers", + "type": "address[]" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint64", + "name": "expires", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "request", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "result", + "type": "bytes" + } + ], + "name": "makeSignatureHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "name", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "resolve", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "resolveWithProof", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_signers", + "type": "address[]" + } + ], + "name": "setSigners", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_url", + "type": "string" + } + ], + "name": "setURL", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "signers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "url", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5033600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000885760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200007f9190620002eb565b60405180910390fd5b6200009981620000b060201b60201c565b50620000aa6200017460201b60201c565b6200034a565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000620001866200027e60201b60201c565b90508060000160089054906101000a900460ff1615620001d2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146200027b5767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516200027291906200032d565b60405180910390a15b50565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002d382620002a6565b9050919050565b620002e581620002c6565b82525050565b6000602082019050620003026000830184620002da565b92915050565b600067ffffffffffffffff82169050919050565b620003278162000308565b82525050565b60006020820190506200034460008301846200031c565b92915050565b612581806200035a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018d5780639061b923146101ab578063a3772662146101db578063a644cbdc146101f7578063f2fde38b14610213578063f4d4d2f81461022f576100b4565b806301ffc9a7146100b95780631dcfea09146100e95780635600f04f14610119578063715018a614610137578063736c0d5b146101415780637734340814610171575b600080fd5b6100d360048036038101906100ce919061107b565b61025f565b6040516100e091906110c3565b60405180910390f35b61010360048036038101906100fe91906112c2565b6102d9565b604051610110919061137a565b60405180910390f35b6101216102f1565b60405161012e9190611414565b60405180910390f35b61013f61037f565b005b61015b60048036038101906101569190611436565b610393565b60405161016891906110c3565b60405180910390f35b61018b600480360381019061018691906114c3565b6103b3565b005b6101956103d1565b6040516101a2919061151f565b60405180910390f35b6101c560048036038101906101c09190611590565b6103fa565b6040516101d29190611666565b60405180910390f35b6101f560048036038101906101f091906116de565b6105e6565b005b610211600480360381019061020c919061188f565b6106c6565b005b61022d60048036038101906102289190611436565b610920565b005b61024960048036038101906102449190611590565b6109a6565b6040516102569190611666565b60405180910390f35b60007f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d257506102d182610a54565b5b9050919050565b60006102e785858585610abe565b9050949350505050565b600180546102fe90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90611936565b80156103775780601f1061034c57610100808354040283529160200191610377565b820191906000526020600020905b81548152906001019060200180831161035a57829003601f168201915b505050505081565b610387610b05565b6103916000610b8c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6103bb610b05565b8181600191826103cc929190611b28565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000639061b92360e01b8686868660405160240161041d9493929190611c25565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000600167ffffffffffffffff81111561049957610498611197565b5b6040519080825280602002602001820160405280156104cc57816020015b60608152602001906001900390816104b75790505b509050600180546104dc90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611936565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b50505050508160008151811061056e5761056d611c60565b5b602002602001018190525030818363f4d4d2f860e01b8530604051602001610597929190611c8f565b6040516020818303038152906040526040517f556f18300000000000000000000000000000000000000000000000000000000081526004016105dd959493929190611dda565b60405180910390fd5b6105ee610b05565b60005b828290508110156106885760016002600085858581811061061557610614611c60565b5b905060200201602081019061062a9190611436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506105f1565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d782826040516106ba929190611f05565b60405180910390a15050565b60006106d0610c50565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff1614801561071e5750825b9050600060018367ffffffffffffffff16148015610753575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610761575080155b15610798576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107e85760018560000160086101000a81548160ff0219169083151502179055505b86600190816107f79190611f29565b5060005b86518110156108835760016002600089848151811061081d5761081c611c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107fb565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7866040516108b39190612081565b60405180910390a183156109175760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161090e91906120de565b60405180910390a15b50505050505050565b610928610b05565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361099a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610991919061151f565b60405180910390fd5b6109a381610b8c565b50565b60606000806109b785858989610c78565b91509150600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e9061216b565b60405180910390fd5b8092505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000848484805190602001208480519060200120604051602001610ae59493929190612281565b604051602081830303815290604052805190602001209050949350505050565b610b0d610d27565b73ffffffffffffffffffffffffffffffffffffffff16610b2b6103d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a57610b4e610d27565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610b81919061151f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6000606060008060008686810190610c9091906122da565b9250925092506000808a8a810190610ca891906123a3565b915091506000610cc3610cbd8387868a610abe565b85610d2f565b9050428567ffffffffffffffff161015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612471565b60405180910390fd5b80869750975050505050505094509492505050565b600033905090565b600080600080610d3f8686610d5b565b925092509250610d4f8282610db7565b82935050505092915050565b60008060006041845103610da05760008060006020870151925060408701519150606087015160001a9050610d9288828585610f1b565b955095509550505050610db0565b60006002855160001b9250925092505b9250925092565b60006003811115610dcb57610dca612491565b5b826003811115610dde57610ddd612491565b5b0315610f175760016003811115610df857610df7612491565b5b826003811115610e0b57610e0a612491565b5b03610e42576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115610e5657610e55612491565b5b826003811115610e6957610e68612491565b5b03610eae578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401610ea591906124cf565b60405180910390fd5b600380811115610ec157610ec0612491565b5b826003811115610ed457610ed3612491565b5b03610f1657806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401610f0d919061137a565b60405180910390fd5b5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115610f5b576000600385925092509250611005565b600060018888888860405160008152602001604052604051610f809493929190612506565b6020604051602081039080840390855afa158015610fa2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff657600060016000801b93509350935050611005565b8060008060001b935093509350505b9450945094915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61105881611023565b811461106357600080fd5b50565b6000813590506110758161104f565b92915050565b60006020828403121561109157611090611019565b5b600061109f84828501611066565b91505092915050565b60008115159050919050565b6110bd816110a8565b82525050565b60006020820190506110d860008301846110b4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611109826110de565b9050919050565b611119816110fe565b811461112457600080fd5b50565b60008135905061113681611110565b92915050565b600067ffffffffffffffff82169050919050565b6111598161113c565b811461116457600080fd5b50565b60008135905061117681611150565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6111cf82611186565b810181811067ffffffffffffffff821117156111ee576111ed611197565b5b80604052505050565b600061120161100f565b905061120d82826111c6565b919050565b600067ffffffffffffffff82111561122d5761122c611197565b5b61123682611186565b9050602081019050919050565b82818337600083830152505050565b600061126561126084611212565b6111f7565b90508281526020810184848401111561128157611280611181565b5b61128c848285611243565b509392505050565b600082601f8301126112a9576112a861117c565b5b81356112b9848260208601611252565b91505092915050565b600080600080608085870312156112dc576112db611019565b5b60006112ea87828801611127565b94505060206112fb87828801611167565b935050604085013567ffffffffffffffff81111561131c5761131b61101e565b5b61132887828801611294565b925050606085013567ffffffffffffffff8111156113495761134861101e565b5b61135587828801611294565b91505092959194509250565b6000819050919050565b61137481611361565b82525050565b600060208201905061138f600083018461136b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113cf5780820151818401526020810190506113b4565b60008484015250505050565b60006113e682611395565b6113f081856113a0565b93506114008185602086016113b1565b61140981611186565b840191505092915050565b6000602082019050818103600083015261142e81846113db565b905092915050565b60006020828403121561144c5761144b611019565b5b600061145a84828501611127565b91505092915050565b600080fd5b600080fd5b60008083601f8401126114835761148261117c565b5b8235905067ffffffffffffffff8111156114a05761149f611463565b5b6020830191508360018202830111156114bc576114bb611468565b5b9250929050565b600080602083850312156114da576114d9611019565b5b600083013567ffffffffffffffff8111156114f8576114f761101e565b5b6115048582860161146d565b92509250509250929050565b611519816110fe565b82525050565b60006020820190506115346000830184611510565b92915050565b60008083601f8401126115505761154f61117c565b5b8235905067ffffffffffffffff81111561156d5761156c611463565b5b60208301915083600182028301111561158957611588611468565b5b9250929050565b600080600080604085870312156115aa576115a9611019565b5b600085013567ffffffffffffffff8111156115c8576115c761101e565b5b6115d48782880161153a565b9450945050602085013567ffffffffffffffff8111156115f7576115f661101e565b5b6116038782880161153a565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b600061163882611611565b611642818561161c565b93506116528185602086016113b1565b61165b81611186565b840191505092915050565b60006020820190508181036000830152611680818461162d565b905092915050565b60008083601f84011261169e5761169d61117c565b5b8235905067ffffffffffffffff8111156116bb576116ba611463565b5b6020830191508360208202830111156116d7576116d6611468565b5b9250929050565b600080602083850312156116f5576116f4611019565b5b600083013567ffffffffffffffff8111156117135761171261101e565b5b61171f85828601611688565b92509250509250929050565b600067ffffffffffffffff82111561174657611745611197565b5b61174f82611186565b9050602081019050919050565b600061176f61176a8461172b565b6111f7565b90508281526020810184848401111561178b5761178a611181565b5b611796848285611243565b509392505050565b600082601f8301126117b3576117b261117c565b5b81356117c384826020860161175c565b91505092915050565b600067ffffffffffffffff8211156117e7576117e6611197565b5b602082029050602081019050919050565b600061180b611806846117cc565b6111f7565b9050808382526020820190506020840283018581111561182e5761182d611468565b5b835b8181101561185757806118438882611127565b845260208401935050602081019050611830565b5050509392505050565b600082601f8301126118765761187561117c565b5b81356118868482602086016117f8565b91505092915050565b600080604083850312156118a6576118a5611019565b5b600083013567ffffffffffffffff8111156118c4576118c361101e565b5b6118d08582860161179e565b925050602083013567ffffffffffffffff8111156118f1576118f061101e565b5b6118fd85828601611861565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061194e57607f821691505b60208210810361196157611960611907565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611997565b6119de8683611997565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000611a25611a20611a1b846119f6565b611a00565b6119f6565b9050919050565b6000819050919050565b611a3f83611a0a565b611a53611a4b82611a2c565b8484546119a4565b825550505050565b600090565b611a68611a5b565b611a73818484611a36565b505050565b5b81811015611a9757611a8c600082611a60565b600181019050611a79565b5050565b601f821115611adc57611aad81611972565b611ab684611987565b81016020851015611ac5578190505b611ad9611ad185611987565b830182611a78565b50505b505050565b600082821c905092915050565b6000611aff60001984600802611ae1565b1980831691505092915050565b6000611b188383611aee565b9150826002028217905092915050565b611b328383611967565b67ffffffffffffffff811115611b4b57611b4a611197565b5b611b558254611936565b611b60828285611a9b565b6000601f831160018114611b8f5760008415611b7d578287013590505b611b878582611b0c565b865550611bef565b601f198416611b9d86611972565b60005b82811015611bc557848901358255600182019150602085019450602081019050611ba0565b86831015611be25784890135611bde601f891682611aee565b8355505b6001600288020188555050505b50505050505050565b6000611c04838561161c565b9350611c11838584611243565b611c1a83611186565b840190509392505050565b60006040820190508181036000830152611c40818688611bf8565b90508181036020830152611c55818486611bf8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040820190508181036000830152611ca9818561162d565b9050611cb86020830184611510565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000611d0782611395565b611d118185611ceb565b9350611d218185602086016113b1565b611d2a81611186565b840191505092915050565b6000611d418383611cfc565b905092915050565b6000602082019050919050565b6000611d6182611cbf565b611d6b8185611cca565b935083602082028501611d7d85611cdb565b8060005b85811015611db95784840389528151611d9a8582611d35565b9450611da583611d49565b925060208a01995050600181019050611d81565b50829750879550505050505092915050565b611dd481611023565b82525050565b600060a082019050611def6000830188611510565b8181036020830152611e018187611d56565b90508181036040830152611e15818661162d565b9050611e246060830185611dcb565b8181036080830152611e36818461162d565b90509695505050505050565b600082825260208201905092915050565b6000819050919050565b611e66816110fe565b82525050565b6000611e788383611e5d565b60208301905092915050565b6000611e936020840184611127565b905092915050565b6000602082019050919050565b6000611eb48385611e42565b9350611ebf82611e53565b8060005b85811015611ef857611ed58284611e84565b611edf8882611e6c565b9750611eea83611e9b565b925050600181019050611ec3565b5085925050509392505050565b60006020820190508181036000830152611f20818486611ea8565b90509392505050565b611f3282611395565b67ffffffffffffffff811115611f4b57611f4a611197565b5b611f558254611936565b611f60828285611a9b565b600060209050601f831160018114611f935760008415611f81578287015190505b611f8b8582611b0c565b865550611ff3565b601f198416611fa186611972565b60005b82811015611fc957848901518255600182019150602085019450602081019050611fa4565b86831015611fe65784890151611fe2601f891682611aee565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061202e82611ffb565b6120388185611e42565b935061204383612006565b8060005b8381101561207457815161205b8882611e6c565b975061206683612016565b925050600181019050612047565b5085935050505092915050565b6000602082019050818103600083015261209b8184612023565b905092915050565b6000819050919050565b60006120c86120c36120be846120a3565b611a00565b61113c565b9050919050565b6120d8816120ad565b82525050565b60006020820190506120f360008301846120cf565b92915050565b7f5369676e617475726556657269666965723a20496e76616c696420736967617460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b60006121556023836113a0565b9150612160826120f9565b604082019050919050565b6000602082019050818103600083015261218481612148565b9050919050565b600081905092915050565b7f1900000000000000000000000000000000000000000000000000000000000000600082015250565b60006121cc60028361218b565b91506121d782612196565b600282019050919050565b60008160601b9050919050565b60006121fa826121e2565b9050919050565b600061220c826121ef565b9050919050565b61222461221f826110fe565b612201565b82525050565b60008160c01b9050919050565b60006122428261222a565b9050919050565b61225a6122558261113c565b612237565b82525050565b6000819050919050565b61227b61227682611361565b612260565b82525050565b600061228c826121bf565b91506122988287612213565b6014820191506122a88286612249565b6008820191506122b8828561226a565b6020820191506122c8828461226a565b60208201915081905095945050505050565b6000806000606084860312156122f3576122f2611019565b5b600084013567ffffffffffffffff8111156123115761231061101e565b5b61231d86828701611294565b935050602061232e86828701611167565b925050604084013567ffffffffffffffff81111561234f5761234e61101e565b5b61235b86828701611294565b9150509250925092565b6000612370826110de565b9050919050565b61238081612365565b811461238b57600080fd5b50565b60008135905061239d81612377565b92915050565b600080604083850312156123ba576123b9611019565b5b600083013567ffffffffffffffff8111156123d8576123d761101e565b5b6123e485828601611294565b92505060206123f58582860161238e565b9150509250929050565b7f5369676e617475726556657269666965723a205369676e61747572652065787060008201527f6972656400000000000000000000000000000000000000000000000000000000602082015250565b600061245b6024836113a0565b9150612466826123ff565b604082019050919050565b6000602082019050818103600083015261248a8161244e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6124c9816119f6565b82525050565b60006020820190506124e460008301846124c0565b92915050565b600060ff82169050919050565b612500816124ea565b82525050565b600060808201905061251b600083018761136b565b61252860208301866124f7565b612535604083018561136b565b612542606083018461136b565b9594505050505056fea2646970667358221220767487219e85098f12d1bd65ea4f86a278f2d3a91c85914eb8d07034fa4d93a264736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018d5780639061b923146101ab578063a3772662146101db578063a644cbdc146101f7578063f2fde38b14610213578063f4d4d2f81461022f576100b4565b806301ffc9a7146100b95780631dcfea09146100e95780635600f04f14610119578063715018a614610137578063736c0d5b146101415780637734340814610171575b600080fd5b6100d360048036038101906100ce919061107b565b61025f565b6040516100e091906110c3565b60405180910390f35b61010360048036038101906100fe91906112c2565b6102d9565b604051610110919061137a565b60405180910390f35b6101216102f1565b60405161012e9190611414565b60405180910390f35b61013f61037f565b005b61015b60048036038101906101569190611436565b610393565b60405161016891906110c3565b60405180910390f35b61018b600480360381019061018691906114c3565b6103b3565b005b6101956103d1565b6040516101a2919061151f565b60405180910390f35b6101c560048036038101906101c09190611590565b6103fa565b6040516101d29190611666565b60405180910390f35b6101f560048036038101906101f091906116de565b6105e6565b005b610211600480360381019061020c919061188f565b6106c6565b005b61022d60048036038101906102289190611436565b610920565b005b61024960048036038101906102449190611590565b6109a6565b6040516102569190611666565b60405180910390f35b60007f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d257506102d182610a54565b5b9050919050565b60006102e785858585610abe565b9050949350505050565b600180546102fe90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90611936565b80156103775780601f1061034c57610100808354040283529160200191610377565b820191906000526020600020905b81548152906001019060200180831161035a57829003601f168201915b505050505081565b610387610b05565b6103916000610b8c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6103bb610b05565b8181600191826103cc929190611b28565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000639061b92360e01b8686868660405160240161041d9493929190611c25565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000600167ffffffffffffffff81111561049957610498611197565b5b6040519080825280602002602001820160405280156104cc57816020015b60608152602001906001900390816104b75790505b509050600180546104dc90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611936565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b50505050508160008151811061056e5761056d611c60565b5b602002602001018190525030818363f4d4d2f860e01b8530604051602001610597929190611c8f565b6040516020818303038152906040526040517f556f18300000000000000000000000000000000000000000000000000000000081526004016105dd959493929190611dda565b60405180910390fd5b6105ee610b05565b60005b828290508110156106885760016002600085858581811061061557610614611c60565b5b905060200201602081019061062a9190611436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506105f1565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d782826040516106ba929190611f05565b60405180910390a15050565b60006106d0610c50565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff1614801561071e5750825b9050600060018367ffffffffffffffff16148015610753575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610761575080155b15610798576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107e85760018560000160086101000a81548160ff0219169083151502179055505b86600190816107f79190611f29565b5060005b86518110156108835760016002600089848151811061081d5761081c611c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107fb565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7866040516108b39190612081565b60405180910390a183156109175760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161090e91906120de565b60405180910390a15b50505050505050565b610928610b05565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361099a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610991919061151f565b60405180910390fd5b6109a381610b8c565b50565b60606000806109b785858989610c78565b91509150600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e9061216b565b60405180910390fd5b8092505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000848484805190602001208480519060200120604051602001610ae59493929190612281565b604051602081830303815290604052805190602001209050949350505050565b610b0d610d27565b73ffffffffffffffffffffffffffffffffffffffff16610b2b6103d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a57610b4e610d27565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610b81919061151f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6000606060008060008686810190610c9091906122da565b9250925092506000808a8a810190610ca891906123a3565b915091506000610cc3610cbd8387868a610abe565b85610d2f565b9050428567ffffffffffffffff161015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612471565b60405180910390fd5b80869750975050505050505094509492505050565b600033905090565b600080600080610d3f8686610d5b565b925092509250610d4f8282610db7565b82935050505092915050565b60008060006041845103610da05760008060006020870151925060408701519150606087015160001a9050610d9288828585610f1b565b955095509550505050610db0565b60006002855160001b9250925092505b9250925092565b60006003811115610dcb57610dca612491565b5b826003811115610dde57610ddd612491565b5b0315610f175760016003811115610df857610df7612491565b5b826003811115610e0b57610e0a612491565b5b03610e42576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115610e5657610e55612491565b5b826003811115610e6957610e68612491565b5b03610eae578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401610ea591906124cf565b60405180910390fd5b600380811115610ec157610ec0612491565b5b826003811115610ed457610ed3612491565b5b03610f1657806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401610f0d919061137a565b60405180910390fd5b5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115610f5b576000600385925092509250611005565b600060018888888860405160008152602001604052604051610f809493929190612506565b6020604051602081039080840390855afa158015610fa2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff657600060016000801b93509350935050611005565b8060008060001b935093509350505b9450945094915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61105881611023565b811461106357600080fd5b50565b6000813590506110758161104f565b92915050565b60006020828403121561109157611090611019565b5b600061109f84828501611066565b91505092915050565b60008115159050919050565b6110bd816110a8565b82525050565b60006020820190506110d860008301846110b4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611109826110de565b9050919050565b611119816110fe565b811461112457600080fd5b50565b60008135905061113681611110565b92915050565b600067ffffffffffffffff82169050919050565b6111598161113c565b811461116457600080fd5b50565b60008135905061117681611150565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6111cf82611186565b810181811067ffffffffffffffff821117156111ee576111ed611197565b5b80604052505050565b600061120161100f565b905061120d82826111c6565b919050565b600067ffffffffffffffff82111561122d5761122c611197565b5b61123682611186565b9050602081019050919050565b82818337600083830152505050565b600061126561126084611212565b6111f7565b90508281526020810184848401111561128157611280611181565b5b61128c848285611243565b509392505050565b600082601f8301126112a9576112a861117c565b5b81356112b9848260208601611252565b91505092915050565b600080600080608085870312156112dc576112db611019565b5b60006112ea87828801611127565b94505060206112fb87828801611167565b935050604085013567ffffffffffffffff81111561131c5761131b61101e565b5b61132887828801611294565b925050606085013567ffffffffffffffff8111156113495761134861101e565b5b61135587828801611294565b91505092959194509250565b6000819050919050565b61137481611361565b82525050565b600060208201905061138f600083018461136b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113cf5780820151818401526020810190506113b4565b60008484015250505050565b60006113e682611395565b6113f081856113a0565b93506114008185602086016113b1565b61140981611186565b840191505092915050565b6000602082019050818103600083015261142e81846113db565b905092915050565b60006020828403121561144c5761144b611019565b5b600061145a84828501611127565b91505092915050565b600080fd5b600080fd5b60008083601f8401126114835761148261117c565b5b8235905067ffffffffffffffff8111156114a05761149f611463565b5b6020830191508360018202830111156114bc576114bb611468565b5b9250929050565b600080602083850312156114da576114d9611019565b5b600083013567ffffffffffffffff8111156114f8576114f761101e565b5b6115048582860161146d565b92509250509250929050565b611519816110fe565b82525050565b60006020820190506115346000830184611510565b92915050565b60008083601f8401126115505761154f61117c565b5b8235905067ffffffffffffffff81111561156d5761156c611463565b5b60208301915083600182028301111561158957611588611468565b5b9250929050565b600080600080604085870312156115aa576115a9611019565b5b600085013567ffffffffffffffff8111156115c8576115c761101e565b5b6115d48782880161153a565b9450945050602085013567ffffffffffffffff8111156115f7576115f661101e565b5b6116038782880161153a565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b600061163882611611565b611642818561161c565b93506116528185602086016113b1565b61165b81611186565b840191505092915050565b60006020820190508181036000830152611680818461162d565b905092915050565b60008083601f84011261169e5761169d61117c565b5b8235905067ffffffffffffffff8111156116bb576116ba611463565b5b6020830191508360208202830111156116d7576116d6611468565b5b9250929050565b600080602083850312156116f5576116f4611019565b5b600083013567ffffffffffffffff8111156117135761171261101e565b5b61171f85828601611688565b92509250509250929050565b600067ffffffffffffffff82111561174657611745611197565b5b61174f82611186565b9050602081019050919050565b600061176f61176a8461172b565b6111f7565b90508281526020810184848401111561178b5761178a611181565b5b611796848285611243565b509392505050565b600082601f8301126117b3576117b261117c565b5b81356117c384826020860161175c565b91505092915050565b600067ffffffffffffffff8211156117e7576117e6611197565b5b602082029050602081019050919050565b600061180b611806846117cc565b6111f7565b9050808382526020820190506020840283018581111561182e5761182d611468565b5b835b8181101561185757806118438882611127565b845260208401935050602081019050611830565b5050509392505050565b600082601f8301126118765761187561117c565b5b81356118868482602086016117f8565b91505092915050565b600080604083850312156118a6576118a5611019565b5b600083013567ffffffffffffffff8111156118c4576118c361101e565b5b6118d08582860161179e565b925050602083013567ffffffffffffffff8111156118f1576118f061101e565b5b6118fd85828601611861565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061194e57607f821691505b60208210810361196157611960611907565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611997565b6119de8683611997565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000611a25611a20611a1b846119f6565b611a00565b6119f6565b9050919050565b6000819050919050565b611a3f83611a0a565b611a53611a4b82611a2c565b8484546119a4565b825550505050565b600090565b611a68611a5b565b611a73818484611a36565b505050565b5b81811015611a9757611a8c600082611a60565b600181019050611a79565b5050565b601f821115611adc57611aad81611972565b611ab684611987565b81016020851015611ac5578190505b611ad9611ad185611987565b830182611a78565b50505b505050565b600082821c905092915050565b6000611aff60001984600802611ae1565b1980831691505092915050565b6000611b188383611aee565b9150826002028217905092915050565b611b328383611967565b67ffffffffffffffff811115611b4b57611b4a611197565b5b611b558254611936565b611b60828285611a9b565b6000601f831160018114611b8f5760008415611b7d578287013590505b611b878582611b0c565b865550611bef565b601f198416611b9d86611972565b60005b82811015611bc557848901358255600182019150602085019450602081019050611ba0565b86831015611be25784890135611bde601f891682611aee565b8355505b6001600288020188555050505b50505050505050565b6000611c04838561161c565b9350611c11838584611243565b611c1a83611186565b840190509392505050565b60006040820190508181036000830152611c40818688611bf8565b90508181036020830152611c55818486611bf8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040820190508181036000830152611ca9818561162d565b9050611cb86020830184611510565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000611d0782611395565b611d118185611ceb565b9350611d218185602086016113b1565b611d2a81611186565b840191505092915050565b6000611d418383611cfc565b905092915050565b6000602082019050919050565b6000611d6182611cbf565b611d6b8185611cca565b935083602082028501611d7d85611cdb565b8060005b85811015611db95784840389528151611d9a8582611d35565b9450611da583611d49565b925060208a01995050600181019050611d81565b50829750879550505050505092915050565b611dd481611023565b82525050565b600060a082019050611def6000830188611510565b8181036020830152611e018187611d56565b90508181036040830152611e15818661162d565b9050611e246060830185611dcb565b8181036080830152611e36818461162d565b90509695505050505050565b600082825260208201905092915050565b6000819050919050565b611e66816110fe565b82525050565b6000611e788383611e5d565b60208301905092915050565b6000611e936020840184611127565b905092915050565b6000602082019050919050565b6000611eb48385611e42565b9350611ebf82611e53565b8060005b85811015611ef857611ed58284611e84565b611edf8882611e6c565b9750611eea83611e9b565b925050600181019050611ec3565b5085925050509392505050565b60006020820190508181036000830152611f20818486611ea8565b90509392505050565b611f3282611395565b67ffffffffffffffff811115611f4b57611f4a611197565b5b611f558254611936565b611f60828285611a9b565b600060209050601f831160018114611f935760008415611f81578287015190505b611f8b8582611b0c565b865550611ff3565b601f198416611fa186611972565b60005b82811015611fc957848901518255600182019150602085019450602081019050611fa4565b86831015611fe65784890151611fe2601f891682611aee565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061202e82611ffb565b6120388185611e42565b935061204383612006565b8060005b8381101561207457815161205b8882611e6c565b975061206683612016565b925050600181019050612047565b5085935050505092915050565b6000602082019050818103600083015261209b8184612023565b905092915050565b6000819050919050565b60006120c86120c36120be846120a3565b611a00565b61113c565b9050919050565b6120d8816120ad565b82525050565b60006020820190506120f360008301846120cf565b92915050565b7f5369676e617475726556657269666965723a20496e76616c696420736967617460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b60006121556023836113a0565b9150612160826120f9565b604082019050919050565b6000602082019050818103600083015261218481612148565b9050919050565b600081905092915050565b7f1900000000000000000000000000000000000000000000000000000000000000600082015250565b60006121cc60028361218b565b91506121d782612196565b600282019050919050565b60008160601b9050919050565b60006121fa826121e2565b9050919050565b600061220c826121ef565b9050919050565b61222461221f826110fe565b612201565b82525050565b60008160c01b9050919050565b60006122428261222a565b9050919050565b61225a6122558261113c565b612237565b82525050565b6000819050919050565b61227b61227682611361565b612260565b82525050565b600061228c826121bf565b91506122988287612213565b6014820191506122a88286612249565b6008820191506122b8828561226a565b6020820191506122c8828461226a565b60208201915081905095945050505050565b6000806000606084860312156122f3576122f2611019565b5b600084013567ffffffffffffffff8111156123115761231061101e565b5b61231d86828701611294565b935050602061232e86828701611167565b925050604084013567ffffffffffffffff81111561234f5761234e61101e565b5b61235b86828701611294565b9150509250925092565b6000612370826110de565b9050919050565b61238081612365565b811461238b57600080fd5b50565b60008135905061239d81612377565b92915050565b600080604083850312156123ba576123b9611019565b5b600083013567ffffffffffffffff8111156123d8576123d761101e565b5b6123e485828601611294565b92505060206123f58582860161238e565b9150509250929050565b7f5369676e617475726556657269666965723a205369676e61747572652065787060008201527f6972656400000000000000000000000000000000000000000000000000000000602082015250565b600061245b6024836113a0565b9150612466826123ff565b604082019050919050565b6000602082019050818103600083015261248a8161244e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6124c9816119f6565b82525050565b60006020820190506124e460008301846124c0565b92915050565b600060ff82169050919050565b612500816124ea565b82525050565b600060808201905061251b600083018761136b565b61252860208301866124f7565b612535604083018561136b565b612542606083018461136b565b9594505050505056fea2646970667358221220767487219e85098f12d1bd65ea4f86a278f2d3a91c85914eb8d07034fa4d93a264736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-1/build-info/eb7a073755a6bca5e391672b677e5a6b.json b/ignition/deployments/chain-1/build-info/eb7a073755a6bca5e391672b677e5a6b.json new file mode 100644 index 0000000..28f3e53 --- /dev/null +++ b/ignition/deployments/chain-1/build-info/eb7a073755a6bca5e391672b677e5a6b.json @@ -0,0 +1,51172 @@ +{ + "id": "eb7a073755a6bca5e391672b677e5a6b", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.24", + "solcLongVersion": "0.8.24+commit.e11b9ed9", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/Clones.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Clones.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for\n * deploying minimal proxy contracts, also known as \"clones\".\n *\n * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies\n * > a minimal bytecode implementation that delegates all calls to a known, fixed address.\n *\n * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`\n * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the\n * deterministic method.\n */\nlibrary Clones {\n /**\n * @dev A clone instance deployment failed.\n */\n error ERC1167FailedCreateClone();\n\n /**\n * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n *\n * This function uses the create opcode, which should never revert.\n */\n function clone(address implementation) internal returns (address instance) {\n /// @solidity memory-safe-assembly\n assembly {\n // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes\n // of the `implementation` address with the bytecode before the address.\n mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))\n // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.\n mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))\n instance := create(0, 0x09, 0x37)\n }\n if (instance == address(0)) {\n revert ERC1167FailedCreateClone();\n }\n }\n\n /**\n * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n *\n * This function uses the create2 opcode and a `salt` to deterministically deploy\n * the clone. Using the same `implementation` and `salt` multiple time will revert, since\n * the clones cannot be deployed twice at the same address.\n */\n function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {\n /// @solidity memory-safe-assembly\n assembly {\n // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes\n // of the `implementation` address with the bytecode before the address.\n mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))\n // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.\n mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))\n instance := create2(0, 0x09, 0x37, salt)\n }\n if (instance == address(0)) {\n revert ERC1167FailedCreateClone();\n }\n }\n\n /**\n * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.\n */\n function predictDeterministicAddress(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n mstore(add(ptr, 0x38), deployer)\n mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)\n mstore(add(ptr, 0x14), implementation)\n mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)\n mstore(add(ptr, 0x58), salt)\n mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))\n predicted := keccak256(add(ptr, 0x43), 0x55)\n }\n }\n\n /**\n * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.\n */\n function predictDeterministicAddress(\n address implementation,\n bytes32 salt\n ) internal view returns (address predicted) {\n return predictDeterministicAddress(implementation, salt, address(this));\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/utils/Initializable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reininitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n assembly {\n $.slot := INITIALIZABLE_STORAGE\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/cryptography/ECDSA.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n /// @solidity memory-safe-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n */\n function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address, RecoverError, bytes32) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n" + }, + "contracts/IExtendedResolver.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\ninterface IExtendedResolver {\n function resolve(\n bytes memory name,\n bytes memory data\n ) external view returns (bytes memory);\n}\n" + }, + "contracts/OffchainResolver.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\nimport \"./SupportsInterface.sol\";\nimport \"./IExtendedResolver.sol\";\nimport \"./SignatureVerifier.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\n\ninterface IResolverService {\n function resolve(\n bytes calldata name,\n bytes calldata data\n )\n external\n view\n returns (bytes memory result, uint64 expires, bytes memory sig);\n}\n\n/**\n * Implements an ENS resolver that directs all queries to a CCIP read gateway.\n * Callers must implement EIP 3668 and ENSIP 10.\n */\ncontract OffchainResolver is\n IExtendedResolver,\n SupportsInterface,\n Ownable,\n Initializable\n{\n string public url;\n mapping(address => bool) public signers;\n\n event NewSigners(address[] signers);\n error OffchainLookup(\n address sender,\n string[] urls,\n bytes callData,\n bytes4 callbackFunction,\n bytes extraData\n );\n\n constructor() Ownable(msg.sender) {\n _disableInitializers();\n }\n\n function initialize(\n string memory _url,\n address[] memory _signers\n ) external initializer {\n url = _url;\n for (uint i = 0; i < _signers.length; i++) {\n signers[_signers[i]] = true;\n }\n emit NewSigners(_signers);\n }\n\n function makeSignatureHash(\n address target,\n uint64 expires,\n bytes memory request,\n bytes memory result\n ) external pure returns (bytes32) {\n return\n SignatureVerifier.makeSignatureHash(\n target,\n expires,\n request,\n result\n );\n }\n\n /**\n * Resolves a name, as specified by ENSIP 10.\n * @param name The DNS-encoded name to resolve.\n * @param data The ABI encoded data for the underlying resolution function (Eg, addr(bytes32), text(bytes32,string), etc).\n * @return The return data, ABI encoded identically to the underlying function.\n */\n function resolve(\n bytes calldata name,\n bytes calldata data\n ) external view override returns (bytes memory) {\n bytes memory callData = abi.encodeWithSelector(\n IResolverService.resolve.selector,\n name,\n data\n );\n string[] memory urls = new string[](1);\n urls[0] = url;\n revert OffchainLookup(\n address(this),\n urls,\n callData,\n OffchainResolver.resolveWithProof.selector,\n abi.encode(callData, address(this))\n );\n }\n\n /**\n * Callback used by CCIP read compatible clients to verify and parse the response.\n */\n function resolveWithProof(\n bytes calldata response,\n bytes calldata extraData\n ) external view returns (bytes memory) {\n (address signer, bytes memory result) = SignatureVerifier.verify(\n extraData,\n response\n );\n require(signers[signer], \"SignatureVerifier: Invalid sigature\");\n return result;\n }\n\n function supportsInterface(\n bytes4 interfaceID\n ) public pure override returns (bool) {\n return\n interfaceID == type(IExtendedResolver).interfaceId ||\n super.supportsInterface(interfaceID);\n }\n\n /**\n * Sets the URL of the gateway.\n */\n function setURL(string calldata _url) external onlyOwner {\n url = _url;\n }\n\n /**\n * Sets the Signers of the gateway.\n */\n function setSigners(address[] calldata _signers) external onlyOwner {\n for (uint i = 0; i < _signers.length; i++) {\n signers[_signers[i]] = true;\n }\n emit NewSigners(_signers);\n }\n}\n" + }, + "contracts/OffchainResolverFactory.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\nimport \"./OffchainResolver.sol\";\nimport \"@openzeppelin/contracts/proxy/Clones.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract OffchainResolverFactory is Ownable {\n\n address public offchainResolver;\n\n event OffchainResolverCreated(address newOffchainResolverAddress);\n\n constructor(address _offchainResolver) Ownable(msg.sender) {\n offchainResolver = _offchainResolver;\n }\n\n function setOffchainResolverAddress(address _offchainResolverAddress) public onlyOwner {\n offchainResolver = _offchainResolverAddress;\n }\n\n function createOffchainResolver(string memory _url, address[] memory _signers) public {\n address clone = Clones.clone(offchainResolver);\n OffchainResolver(clone).initialize(_url, _signers);\n emit OffchainResolverCreated(clone);\n }\n\n}\n" + }, + "contracts/SignatureVerifier.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\n\nlibrary SignatureVerifier {\n /**\n * @dev Generates a hash for signing/verifying.\n * @param target: The address the signature is for.\n * @param request: The original request that was sent.\n * @param result: The `result` field of the response (not including the signature part).\n */\n function makeSignatureHash(\n address target,\n uint64 expires,\n bytes memory request,\n bytes memory result\n ) internal pure returns (bytes32) {\n return\n keccak256(\n abi.encodePacked(\n hex\"1900\",\n target,\n expires,\n keccak256(request),\n keccak256(result)\n )\n );\n }\n\n /**\n * @dev Verifies a signed message returned from a callback.\n * @param request: The original request that was sent.\n * @param response: An ABI encoded tuple of `(bytes result, uint64 expires, bytes sig)`, where `result` is the data to return\n * to the caller, and `sig` is the (r,s,v) encoded message signature.\n * @return signer: The address that signed this message.\n * @return result: The `result` decoded from `response`.\n */\n function verify(\n bytes calldata request,\n bytes calldata response\n ) internal view returns (address, bytes memory) {\n (bytes memory result, uint64 expires, bytes memory sig) = abi.decode(\n response,\n (bytes, uint64, bytes)\n );\n (bytes memory extraData, address sender) = abi.decode(\n request,\n (bytes, address)\n );\n address signer = ECDSA.recover(\n makeSignatureHash(sender, expires, extraData, result),\n sig\n );\n require(\n expires >= block.timestamp,\n \"SignatureVerifier: Signature expired\"\n );\n return (signer, result);\n }\n}\n" + }, + "contracts/SupportsInterface.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\ninterface ISupportsInterface {\n function supportsInterface(bytes4 interfaceID) external pure returns (bool);\n}\n\nabstract contract SupportsInterface is ISupportsInterface {\n function supportsInterface(\n bytes4 interfaceID\n ) public pure virtual override returns (bool) {\n return interfaceID == type(ISupportsInterface).interfaceId;\n }\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 516 + ], + "Ownable": [ + 147 + ] + }, + "id": 148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 148, + "sourceUnit": 517, + "src": "128:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "136:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5, + "name": "Context", + "nameLocations": [ + "692:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 516, + "src": "692:7:0" + }, + "id": 6, + "nodeType": "InheritanceSpecifier", + "src": "692:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "175:487:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 147, + "linearizedBaseContracts": [ + 147, + 516 + ], + "name": "Ownable", + "nameLocation": "681:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "706:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "735:85:0", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 13, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "858:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:0" + }, + "src": "825:50:0" + }, + { + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "881:82:0", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 18, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "994:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:0" + }, + "src": "968:41:0" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 24, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1042:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1073:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:0" + }, + "src": "1015:84:0" + }, + { + "body": { + "id": 49, + "nodeType": "Block", + "src": "1259:153:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1273:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:0", + "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": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:0", + "typeDescriptions": {} + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44, + "nodeType": "IfStatement", + "src": "1269:95:0", + "trueBody": { + "id": 43, + "nodeType": "Block", + "src": "1301:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:0", + "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": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:0", + "typeDescriptions": {} + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 36, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "1322:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 42, + "nodeType": "RevertStatement", + "src": "1315:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 46, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1392:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "1373:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 48, + "nodeType": "ExpressionStatement", + "src": "1373:32:0" + } + ] + }, + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "1105:115:0", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 50, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:0", + "nodeType": "VariableDeclaration", + "scope": 50, + "src": "1237:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:0" + }, + "scope": 147, + "src": "1225:187:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "1521:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 53, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1531:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "1531:13:0" + }, + { + "id": 56, + "nodeType": "PlaceholderStatement", + "src": "1554:1:0" + } + ] + }, + "documentation": { + "id": 51, + "nodeType": "StructuredDocumentation", + "src": "1418:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 58, + "name": "onlyOwner", + "nameLocation": "1509:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:0" + }, + "src": "1500:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 66, + "nodeType": "Block", + "src": "1693:30:0", + "statements": [ + { + "expression": { + "id": 64, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1710:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 63, + "id": 65, + "nodeType": "Return", + "src": "1703:13:0" + } + ] + }, + "documentation": { + "id": 59, + "nodeType": "StructuredDocumentation", + "src": "1568:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 67, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "1684:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:0" + }, + "scope": 147, + "src": "1638:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 83, + "nodeType": "Block", + "src": "1841:117:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 71, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1855:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 73, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "1866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "IfStatement", + "src": "1851:101:0", + "trueBody": { + "id": 81, + "nodeType": "Block", + "src": "1880:72:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 77, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "1928:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 76, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "1901:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 80, + "nodeType": "RevertStatement", + "src": "1894:47:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 68, + "nodeType": "StructuredDocumentation", + "src": "1729:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 84, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:0" + }, + "scope": 147, + "src": "1796:162:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 97, + "nodeType": "Block", + "src": "2347:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:0", + "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": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:0", + "typeDescriptions": {} + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 90, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2357:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "2357:30:0" + } + ] + }, + "documentation": { + "id": 85, + "nodeType": "StructuredDocumentation", + "src": "1964:324:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 98, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 88, + "kind": "modifierInvocation", + "modifierName": { + "id": 87, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2337:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:0" + }, + "returnParameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:0" + }, + "scope": 147, + "src": "2293:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 125, + "nodeType": "Block", + "src": "2613:145:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 106, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2627:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:0", + "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": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:0", + "typeDescriptions": {} + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 120, + "nodeType": "IfStatement", + "src": "2623:91:0", + "trueBody": { + "id": 119, + "nodeType": "Block", + "src": "2651:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:0", + "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": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:0", + "typeDescriptions": {} + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 112, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "2672:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 118, + "nodeType": "RevertStatement", + "src": "2665:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2742:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 121, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "2723:28:0" + } + ] + }, + "documentation": { + "id": 99, + "nodeType": "StructuredDocumentation", + "src": "2400:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 104, + "kind": "modifierInvocation", + "modifierName": { + "id": 103, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2603:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "2570:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:0" + }, + "returnParameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:0" + }, + "scope": 147, + "src": "2543:215:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "2975:124:0", + "statements": [ + { + "assignments": [ + 133 + ], + "declarations": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:0", + "nodeType": "VariableDeclaration", + "scope": 145, + "src": "2985:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 135, + "initialValue": { + "id": 134, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3004:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:0" + }, + { + "expression": { + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 136, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 137, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3020:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 141, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "3073:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 142, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3083:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 140, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 144, + "nodeType": "EmitStatement", + "src": "3047:45:0" + } + ] + }, + "documentation": { + "id": 127, + "nodeType": "StructuredDocumentation", + "src": "2764:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "2940:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:0" + }, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:0" + }, + "scope": 147, + "src": "2912:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 148, + "src": "663:2438:0", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24 + ] + } + ], + "src": "102:3000:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/proxy/Clones.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/Clones.sol", + "exportedSymbols": { + "Clones": [ + 232 + ] + }, + "id": 233, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "100:24:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Clones", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 150, + "nodeType": "StructuredDocumentation", + "src": "126:599:1", + "text": " @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for\n deploying minimal proxy contracts, also known as \"clones\".\n > To simply and cheaply clone contract functionality in an immutable way, this standard specifies\n > a minimal bytecode implementation that delegates all calls to a known, fixed address.\n The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`\n (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the\n deterministic method." + }, + "fullyImplemented": true, + "id": 232, + "linearizedBaseContracts": [ + 232 + ], + "name": "Clones", + "nameLocation": "734:6:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 151, + "nodeType": "StructuredDocumentation", + "src": "747:59:1", + "text": " @dev A clone instance deployment failed." + }, + "errorSelector": "c2f868f4", + "id": 153, + "name": "ERC1167FailedCreateClone", + "nameLocation": "817:24:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [], + "src": "841:2:1" + }, + "src": "811:33:1" + }, + { + "body": { + "id": 173, + "nodeType": "Block", + "src": "1122:712:1", + "statements": [ + { + "AST": { + "nativeSrc": "1184:549:1", + "nodeType": "YulBlock", + "src": "1184:549:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1389:4:1", + "nodeType": "YulLiteral", + "src": "1389:4:1", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1402:4:1", + "nodeType": "YulLiteral", + "src": "1402:4:1", + "type": "", + "value": "0xe8" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1412:4:1", + "nodeType": "YulLiteral", + "src": "1412:4:1", + "type": "", + "value": "0x60" + }, + { + "name": "implementation", + "nativeSrc": "1418:14:1", + "nodeType": "YulIdentifier", + "src": "1418:14:1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1408:3:1", + "nodeType": "YulIdentifier", + "src": "1408:3:1" + }, + "nativeSrc": "1408:25:1", + "nodeType": "YulFunctionCall", + "src": "1408:25:1" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "1398:3:1", + "nodeType": "YulIdentifier", + "src": "1398:3:1" + }, + "nativeSrc": "1398:36:1", + "nodeType": "YulFunctionCall", + "src": "1398:36:1" + }, + { + "kind": "number", + "nativeSrc": "1436:48:1", + "nodeType": "YulLiteral", + "src": "1436:48:1", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1395:2:1", + "nodeType": "YulIdentifier", + "src": "1395:2:1" + }, + "nativeSrc": "1395:90:1", + "nodeType": "YulFunctionCall", + "src": "1395:90:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1382:6:1", + "nodeType": "YulIdentifier", + "src": "1382:6:1" + }, + "nativeSrc": "1382:104:1", + "nodeType": "YulFunctionCall", + "src": "1382:104:1" + }, + "nativeSrc": "1382:104:1", + "nodeType": "YulExpressionStatement", + "src": "1382:104:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1607:4:1", + "nodeType": "YulLiteral", + "src": "1607:4:1", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1620:4:1", + "nodeType": "YulLiteral", + "src": "1620:4:1", + "type": "", + "value": "0x78" + }, + { + "name": "implementation", + "nativeSrc": "1626:14:1", + "nodeType": "YulIdentifier", + "src": "1626:14:1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1616:3:1", + "nodeType": "YulIdentifier", + "src": "1616:3:1" + }, + "nativeSrc": "1616:25:1", + "nodeType": "YulFunctionCall", + "src": "1616:25:1" + }, + { + "kind": "number", + "nativeSrc": "1643:32:1", + "nodeType": "YulLiteral", + "src": "1643:32:1", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf3" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1613:2:1", + "nodeType": "YulIdentifier", + "src": "1613:2:1" + }, + "nativeSrc": "1613:63:1", + "nodeType": "YulFunctionCall", + "src": "1613:63:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1600:6:1", + "nodeType": "YulIdentifier", + "src": "1600:6:1" + }, + "nativeSrc": "1600:77:1", + "nodeType": "YulFunctionCall", + "src": "1600:77:1" + }, + "nativeSrc": "1600:77:1", + "nodeType": "YulExpressionStatement", + "src": "1600:77:1" + }, + { + "nativeSrc": "1690:33:1", + "nodeType": "YulAssignment", + "src": "1690:33:1", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1709:1:1", + "nodeType": "YulLiteral", + "src": "1709:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1712:4:1", + "nodeType": "YulLiteral", + "src": "1712:4:1", + "type": "", + "value": "0x09" + }, + { + "kind": "number", + "nativeSrc": "1718:4:1", + "nodeType": "YulLiteral", + "src": "1718:4:1", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "create", + "nativeSrc": "1702:6:1", + "nodeType": "YulIdentifier", + "src": "1702:6:1" + }, + "nativeSrc": "1702:21:1", + "nodeType": "YulFunctionCall", + "src": "1702:21:1" + }, + "variableNames": [ + { + "name": "instance", + "nativeSrc": "1690:8:1", + "nodeType": "YulIdentifier", + "src": "1690:8:1" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 156, + "isOffset": false, + "isSlot": false, + "src": "1418:14:1", + "valueSize": 1 + }, + { + "declaration": 156, + "isOffset": false, + "isSlot": false, + "src": "1626:14:1", + "valueSize": 1 + }, + { + "declaration": 159, + "isOffset": false, + "isSlot": false, + "src": "1690:8:1", + "valueSize": 1 + } + ], + "id": 161, + "nodeType": "InlineAssembly", + "src": "1175:558:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 162, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "1746:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1766:1:1", + "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": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1758:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1758:7:1", + "typeDescriptions": {} + } + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1758:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1746:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 172, + "nodeType": "IfStatement", + "src": "1742:86:1", + "trueBody": { + "id": 171, + "nodeType": "Block", + "src": "1770:58:1", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 168, + "name": "ERC1167FailedCreateClone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "1791:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1791:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 170, + "nodeType": "RevertStatement", + "src": "1784:33:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 154, + "nodeType": "StructuredDocumentation", + "src": "850:192:1", + "text": " @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n This function uses the create opcode, which should never revert." + }, + "id": 174, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nameLocation": "1056:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1070:14:1", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1062:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1062:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1061:24:1" + }, + "returnParameters": { + "id": 160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "instance", + "nameLocation": "1112:8:1", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1104:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:1" + }, + "scope": 232, + "src": "1047:787:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 196, + "nodeType": "Block", + "src": "2311:719:1", + "statements": [ + { + "AST": { + "nativeSrc": "2373:556:1", + "nodeType": "YulBlock", + "src": "2373:556:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2578:4:1", + "nodeType": "YulLiteral", + "src": "2578:4:1", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2591:4:1", + "nodeType": "YulLiteral", + "src": "2591:4:1", + "type": "", + "value": "0xe8" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2601:4:1", + "nodeType": "YulLiteral", + "src": "2601:4:1", + "type": "", + "value": "0x60" + }, + { + "name": "implementation", + "nativeSrc": "2607:14:1", + "nodeType": "YulIdentifier", + "src": "2607:14:1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2597:3:1", + "nodeType": "YulIdentifier", + "src": "2597:3:1" + }, + "nativeSrc": "2597:25:1", + "nodeType": "YulFunctionCall", + "src": "2597:25:1" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "2587:3:1", + "nodeType": "YulIdentifier", + "src": "2587:3:1" + }, + "nativeSrc": "2587:36:1", + "nodeType": "YulFunctionCall", + "src": "2587:36:1" + }, + { + "kind": "number", + "nativeSrc": "2625:48:1", + "nodeType": "YulLiteral", + "src": "2625:48:1", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2584:2:1", + "nodeType": "YulIdentifier", + "src": "2584:2:1" + }, + "nativeSrc": "2584:90:1", + "nodeType": "YulFunctionCall", + "src": "2584:90:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2571:6:1", + "nodeType": "YulIdentifier", + "src": "2571:6:1" + }, + "nativeSrc": "2571:104:1", + "nodeType": "YulFunctionCall", + "src": "2571:104:1" + }, + "nativeSrc": "2571:104:1", + "nodeType": "YulExpressionStatement", + "src": "2571:104:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2796:4:1", + "nodeType": "YulLiteral", + "src": "2796:4:1", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2809:4:1", + "nodeType": "YulLiteral", + "src": "2809:4:1", + "type": "", + "value": "0x78" + }, + { + "name": "implementation", + "nativeSrc": "2815:14:1", + "nodeType": "YulIdentifier", + "src": "2815:14:1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2805:3:1", + "nodeType": "YulIdentifier", + "src": "2805:3:1" + }, + "nativeSrc": "2805:25:1", + "nodeType": "YulFunctionCall", + "src": "2805:25:1" + }, + { + "kind": "number", + "nativeSrc": "2832:32:1", + "nodeType": "YulLiteral", + "src": "2832:32:1", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf3" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2802:2:1", + "nodeType": "YulIdentifier", + "src": "2802:2:1" + }, + "nativeSrc": "2802:63:1", + "nodeType": "YulFunctionCall", + "src": "2802:63:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2789:6:1", + "nodeType": "YulIdentifier", + "src": "2789:6:1" + }, + "nativeSrc": "2789:77:1", + "nodeType": "YulFunctionCall", + "src": "2789:77:1" + }, + "nativeSrc": "2789:77:1", + "nodeType": "YulExpressionStatement", + "src": "2789:77:1" + }, + { + "nativeSrc": "2879:40:1", + "nodeType": "YulAssignment", + "src": "2879:40:1", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2899:1:1", + "nodeType": "YulLiteral", + "src": "2899:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2902:4:1", + "nodeType": "YulLiteral", + "src": "2902:4:1", + "type": "", + "value": "0x09" + }, + { + "kind": "number", + "nativeSrc": "2908:4:1", + "nodeType": "YulLiteral", + "src": "2908:4:1", + "type": "", + "value": "0x37" + }, + { + "name": "salt", + "nativeSrc": "2914:4:1", + "nodeType": "YulIdentifier", + "src": "2914:4:1" + } + ], + "functionName": { + "name": "create2", + "nativeSrc": "2891:7:1", + "nodeType": "YulIdentifier", + "src": "2891:7:1" + }, + "nativeSrc": "2891:28:1", + "nodeType": "YulFunctionCall", + "src": "2891:28:1" + }, + "variableNames": [ + { + "name": "instance", + "nativeSrc": "2879:8:1", + "nodeType": "YulIdentifier", + "src": "2879:8:1" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 177, + "isOffset": false, + "isSlot": false, + "src": "2607:14:1", + "valueSize": 1 + }, + { + "declaration": 177, + "isOffset": false, + "isSlot": false, + "src": "2815:14:1", + "valueSize": 1 + }, + { + "declaration": 182, + "isOffset": false, + "isSlot": false, + "src": "2879:8:1", + "valueSize": 1 + }, + { + "declaration": 179, + "isOffset": false, + "isSlot": false, + "src": "2914:4:1", + "valueSize": 1 + } + ], + "id": 184, + "nodeType": "InlineAssembly", + "src": "2364:565:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 185, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 182, + "src": "2942:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2962:1:1", + "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": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2954:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2954:7:1", + "typeDescriptions": {} + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2954:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2942:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 195, + "nodeType": "IfStatement", + "src": "2938:86:1", + "trueBody": { + "id": 194, + "nodeType": "Block", + "src": "2966:58:1", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 191, + "name": "ERC1167FailedCreateClone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2987:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2987:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 193, + "nodeType": "RevertStatement", + "src": "2980:33:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 175, + "nodeType": "StructuredDocumentation", + "src": "1840:364:1", + "text": " @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n This function uses the create2 opcode and a `salt` to deterministically deploy\n the clone. Using the same `implementation` and `salt` multiple time will revert, since\n the clones cannot be deployed twice at the same address." + }, + "id": 197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneDeterministic", + "nameLocation": "2218:18:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 180, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "2245:14:1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "2237:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2237:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 179, + "mutability": "mutable", + "name": "salt", + "nameLocation": "2269:4:1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "2261:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 178, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2261:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2236:38:1" + }, + "returnParameters": { + "id": 183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 182, + "mutability": "mutable", + "name": "instance", + "nameLocation": "2301:8:1", + "nodeType": "VariableDeclaration", + "scope": 197, + "src": "2293:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2293:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2292:18:1" + }, + "scope": 232, + "src": "2209:821:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 210, + "nodeType": "Block", + "src": "3305:515:1", + "statements": [ + { + "AST": { + "nativeSrc": "3367:447:1", + "nodeType": "YulBlock", + "src": "3367:447:1", + "statements": [ + { + "nativeSrc": "3381:22:1", + "nodeType": "YulVariableDeclaration", + "src": "3381:22:1", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3398:4:1", + "nodeType": "YulLiteral", + "src": "3398:4:1", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3392:5:1", + "nodeType": "YulIdentifier", + "src": "3392:5:1" + }, + "nativeSrc": "3392:11:1", + "nodeType": "YulFunctionCall", + "src": "3392:11:1" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "3385:3:1", + "nodeType": "YulTypedName", + "src": "3385:3:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3427:3:1", + "nodeType": "YulIdentifier", + "src": "3427:3:1" + }, + { + "kind": "number", + "nativeSrc": "3432:4:1", + "nodeType": "YulLiteral", + "src": "3432:4:1", + "type": "", + "value": "0x38" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3423:3:1", + "nodeType": "YulIdentifier", + "src": "3423:3:1" + }, + "nativeSrc": "3423:14:1", + "nodeType": "YulFunctionCall", + "src": "3423:14:1" + }, + { + "name": "deployer", + "nativeSrc": "3439:8:1", + "nodeType": "YulIdentifier", + "src": "3439:8:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3416:6:1", + "nodeType": "YulIdentifier", + "src": "3416:6:1" + }, + "nativeSrc": "3416:32:1", + "nodeType": "YulFunctionCall", + "src": "3416:32:1" + }, + "nativeSrc": "3416:32:1", + "nodeType": "YulExpressionStatement", + "src": "3416:32:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3472:3:1", + "nodeType": "YulIdentifier", + "src": "3472:3:1" + }, + { + "kind": "number", + "nativeSrc": "3477:4:1", + "nodeType": "YulLiteral", + "src": "3477:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3468:3:1", + "nodeType": "YulIdentifier", + "src": "3468:3:1" + }, + "nativeSrc": "3468:14:1", + "nodeType": "YulFunctionCall", + "src": "3468:14:1" + }, + { + "kind": "number", + "nativeSrc": "3484:34:1", + "nodeType": "YulLiteral", + "src": "3484:34:1", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf3ff" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3461:6:1", + "nodeType": "YulIdentifier", + "src": "3461:6:1" + }, + "nativeSrc": "3461:58:1", + "nodeType": "YulFunctionCall", + "src": "3461:58:1" + }, + "nativeSrc": "3461:58:1", + "nodeType": "YulExpressionStatement", + "src": "3461:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3543:3:1", + "nodeType": "YulIdentifier", + "src": "3543:3:1" + }, + { + "kind": "number", + "nativeSrc": "3548:4:1", + "nodeType": "YulLiteral", + "src": "3548:4:1", + "type": "", + "value": "0x14" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3539:3:1", + "nodeType": "YulIdentifier", + "src": "3539:3:1" + }, + "nativeSrc": "3539:14:1", + "nodeType": "YulFunctionCall", + "src": "3539:14:1" + }, + { + "name": "implementation", + "nativeSrc": "3555:14:1", + "nodeType": "YulIdentifier", + "src": "3555:14:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3532:6:1", + "nodeType": "YulIdentifier", + "src": "3532:6:1" + }, + "nativeSrc": "3532:38:1", + "nodeType": "YulFunctionCall", + "src": "3532:38:1" + }, + "nativeSrc": "3532:38:1", + "nodeType": "YulExpressionStatement", + "src": "3532:38:1" + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3590:3:1", + "nodeType": "YulIdentifier", + "src": "3590:3:1" + }, + { + "kind": "number", + "nativeSrc": "3595:42:1", + "nodeType": "YulLiteral", + "src": "3595:42:1", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3583:6:1", + "nodeType": "YulIdentifier", + "src": "3583:6:1" + }, + "nativeSrc": "3583:55:1", + "nodeType": "YulFunctionCall", + "src": "3583:55:1" + }, + "nativeSrc": "3583:55:1", + "nodeType": "YulExpressionStatement", + "src": "3583:55:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3662:3:1", + "nodeType": "YulIdentifier", + "src": "3662:3:1" + }, + { + "kind": "number", + "nativeSrc": "3667:4:1", + "nodeType": "YulLiteral", + "src": "3667:4:1", + "type": "", + "value": "0x58" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3658:3:1", + "nodeType": "YulIdentifier", + "src": "3658:3:1" + }, + "nativeSrc": "3658:14:1", + "nodeType": "YulFunctionCall", + "src": "3658:14:1" + }, + { + "name": "salt", + "nativeSrc": "3674:4:1", + "nodeType": "YulIdentifier", + "src": "3674:4:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3651:6:1", + "nodeType": "YulIdentifier", + "src": "3651:6:1" + }, + "nativeSrc": "3651:28:1", + "nodeType": "YulFunctionCall", + "src": "3651:28:1" + }, + "nativeSrc": "3651:28:1", + "nodeType": "YulExpressionStatement", + "src": "3651:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3703:3:1", + "nodeType": "YulIdentifier", + "src": "3703:3:1" + }, + { + "kind": "number", + "nativeSrc": "3708:4:1", + "nodeType": "YulLiteral", + "src": "3708:4:1", + "type": "", + "value": "0x78" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3699:3:1", + "nodeType": "YulIdentifier", + "src": "3699:3:1" + }, + "nativeSrc": "3699:14:1", + "nodeType": "YulFunctionCall", + "src": "3699:14:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3729:3:1", + "nodeType": "YulIdentifier", + "src": "3729:3:1" + }, + { + "kind": "number", + "nativeSrc": "3734:4:1", + "nodeType": "YulLiteral", + "src": "3734:4:1", + "type": "", + "value": "0x0c" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3725:3:1", + "nodeType": "YulIdentifier", + "src": "3725:3:1" + }, + "nativeSrc": "3725:14:1", + "nodeType": "YulFunctionCall", + "src": "3725:14:1" + }, + { + "kind": "number", + "nativeSrc": "3741:4:1", + "nodeType": "YulLiteral", + "src": "3741:4:1", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3715:9:1", + "nodeType": "YulIdentifier", + "src": "3715:9:1" + }, + "nativeSrc": "3715:31:1", + "nodeType": "YulFunctionCall", + "src": "3715:31:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3692:6:1", + "nodeType": "YulIdentifier", + "src": "3692:6:1" + }, + "nativeSrc": "3692:55:1", + "nodeType": "YulFunctionCall", + "src": "3692:55:1" + }, + "nativeSrc": "3692:55:1", + "nodeType": "YulExpressionStatement", + "src": "3692:55:1" + }, + { + "nativeSrc": "3760:44:1", + "nodeType": "YulAssignment", + "src": "3760:44:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "3787:3:1", + "nodeType": "YulIdentifier", + "src": "3787:3:1" + }, + { + "kind": "number", + "nativeSrc": "3792:4:1", + "nodeType": "YulLiteral", + "src": "3792:4:1", + "type": "", + "value": "0x43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3783:3:1", + "nodeType": "YulIdentifier", + "src": "3783:3:1" + }, + "nativeSrc": "3783:14:1", + "nodeType": "YulFunctionCall", + "src": "3783:14:1" + }, + { + "kind": "number", + "nativeSrc": "3799:4:1", + "nodeType": "YulLiteral", + "src": "3799:4:1", + "type": "", + "value": "0x55" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3773:9:1", + "nodeType": "YulIdentifier", + "src": "3773:9:1" + }, + "nativeSrc": "3773:31:1", + "nodeType": "YulFunctionCall", + "src": "3773:31:1" + }, + "variableNames": [ + { + "name": "predicted", + "nativeSrc": "3760:9:1", + "nodeType": "YulIdentifier", + "src": "3760:9:1" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 204, + "isOffset": false, + "isSlot": false, + "src": "3439:8:1", + "valueSize": 1 + }, + { + "declaration": 200, + "isOffset": false, + "isSlot": false, + "src": "3555:14:1", + "valueSize": 1 + }, + { + "declaration": 207, + "isOffset": false, + "isSlot": false, + "src": "3760:9:1", + "valueSize": 1 + }, + { + "declaration": 202, + "isOffset": false, + "isSlot": false, + "src": "3674:4:1", + "valueSize": 1 + } + ], + "id": 209, + "nodeType": "InlineAssembly", + "src": "3358:456:1" + } + ] + }, + "documentation": { + "id": 198, + "nodeType": "StructuredDocumentation", + "src": "3036:99:1", + "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}." + }, + "id": 211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "predictDeterministicAddress", + "nameLocation": "3149:27:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "3194:14:1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3186:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 199, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3186:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 202, + "mutability": "mutable", + "name": "salt", + "nameLocation": "3226:4:1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3218:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 201, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3218:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "deployer", + "nameLocation": "3248:8:1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3240:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 203, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3240:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3176:86:1" + }, + "returnParameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "predicted", + "nameLocation": "3294:9:1", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "3286:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3286:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3285:19:1" + }, + "scope": 232, + "src": "3140:680:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 230, + "nodeType": "Block", + "src": "4069:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 222, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "4114:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 223, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "4130:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 226, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4144:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$232", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$232", + "typeString": "library Clones" + } + ], + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4136:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4136:7:1", + "typeDescriptions": {} + } + }, + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4136:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 221, + "name": "predictDeterministicAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 211, + 231 + ], + "referencedDeclaration": 211, + "src": "4086:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (address,bytes32,address) pure returns (address)" + } + }, + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4086:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 220, + "id": 229, + "nodeType": "Return", + "src": "4079:71:1" + } + ] + }, + "documentation": { + "id": 212, + "nodeType": "StructuredDocumentation", + "src": "3826:99:1", + "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}." + }, + "id": 231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "predictDeterministicAddress", + "nameLocation": "3939:27:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "3984:14:1", + "nodeType": "VariableDeclaration", + "scope": 231, + "src": "3976:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3976:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 216, + "mutability": "mutable", + "name": "salt", + "nameLocation": "4016:4:1", + "nodeType": "VariableDeclaration", + "scope": 231, + "src": "4008:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 215, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3966:60:1" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "predicted", + "nameLocation": "4058:9:1", + "nodeType": "VariableDeclaration", + "scope": 231, + "src": "4050:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4050:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4049:19:1" + }, + "scope": 232, + "src": "3930:227:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 233, + "src": "726:3433:1", + "usedErrors": [ + 153 + ], + "usedEvents": [] + } + ], + "src": "100:4060:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 486 + ] + }, + "id": 487, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 234, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:2" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 235, + "nodeType": "StructuredDocumentation", + "src": "139:2209:2", + "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" + }, + "fullyImplemented": true, + "id": 486, + "linearizedBaseContracts": [ + 486 + ], + "name": "Initializable", + "nameLocation": "2367:13:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Initializable.InitializableStorage", + "documentation": { + "id": 236, + "nodeType": "StructuredDocumentation", + "src": "2387:293:2", + "text": " @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable" + }, + "id": 243, + "members": [ + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "2820:12:2", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "2813:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 238, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2813:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "2955:13:2", + "nodeType": "VariableDeclaration", + "scope": 243, + "src": "2950:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 241, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2950:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "InitializableStorage", + "nameLocation": "2692:20:2", + "nodeType": "StructDefinition", + "scope": 486, + "src": "2685:290:2", + "visibility": "public" + }, + { + "constant": true, + "id": 246, + "mutability": "constant", + "name": "INITIALIZABLE_STORAGE", + "nameLocation": "3123:21:2", + "nodeType": "VariableDeclaration", + "scope": 486, + "src": "3098:115:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 244, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030", + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:66:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1", + "typeString": "int_const 1089...(70 digits omitted)...9600" + }, + "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 247, + "nodeType": "StructuredDocumentation", + "src": "3220:60:2", + "text": " @dev The contract is already initialized." + }, + "errorSelector": "f92ee8a9", + "id": 249, + "name": "InvalidInitialization", + "nameLocation": "3291:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 248, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:2:2" + }, + "src": "3285:30:2" + }, + { + "documentation": { + "id": 250, + "nodeType": "StructuredDocumentation", + "src": "3321:57:2", + "text": " @dev The contract is not initializing." + }, + "errorSelector": "d7e6bcf8", + "id": 252, + "name": "NotInitializing", + "nameLocation": "3389:15:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 251, + "nodeType": "ParameterList", + "parameters": [], + "src": "3404:2:2" + }, + "src": "3383:24:2" + }, + { + "anonymous": false, + "documentation": { + "id": 253, + "nodeType": "StructuredDocumentation", + "src": "3413:90:2", + "text": " @dev Triggered when the contract has been initialized or reinitialized." + }, + "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2", + "id": 257, + "name": "Initialized", + "nameLocation": "3514:11:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 255, + "indexed": false, + "mutability": "mutable", + "name": "version", + "nameLocation": "3533:7:2", + "nodeType": "VariableDeclaration", + "scope": 257, + "src": "3526:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 254, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3526:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3525:16:2" + }, + "src": "3508:34:2" + }, + { + "body": { + "id": 339, + "nodeType": "Block", + "src": "4092:1081:2", + "statements": [ + { + "assignments": [ + 262 + ], + "declarations": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "$", + "nameLocation": "4187:1:2", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "4158:30:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 261, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 260, + "name": "InitializableStorage", + "nameLocations": [ + "4158:20:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 243, + "src": "4158:20:2" + }, + "referencedDeclaration": 243, + "src": "4158:20:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 265, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 263, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "4191:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$243_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4191:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4158:59:2" + }, + { + "assignments": [ + 267 + ], + "declarations": [ + { + "constant": false, + "id": 267, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "4284:14:2", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "4279:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 266, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4279:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 271, + "initialValue": { + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4301:16:2", + "subExpression": { + "expression": { + "id": 268, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4302:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4304:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "4302:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4279:38:2" + }, + { + "assignments": [ + 273 + ], + "declarations": [ + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "initialized", + "nameLocation": "4334:11:2", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "4327:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 272, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4327:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 276, + "initialValue": { + "expression": { + "id": 274, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4348:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4350:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "4348:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4327:35:2" + }, + { + "assignments": [ + 278 + ], + "declarations": [ + { + "constant": false, + "id": 278, + "mutability": "mutable", + "name": "initialSetup", + "nameLocation": "4711:12:2", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "4706:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4706:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 284, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 279, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "4726:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4741:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4726:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 282, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 267, + "src": "4746:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4726:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4706:54:2" + }, + { + "assignments": [ + 286 + ], + "declarations": [ + { + "constant": false, + "id": 286, + "mutability": "mutable", + "name": "construction", + "nameLocation": "4775:12:2", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "4770:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 285, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4770:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 299, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 287, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "4790:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4805:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4790:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 292, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4818:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$486", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$486", + "typeString": "contract Initializable" + } + ], + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4810:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 290, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4810:7:2", + "typeDescriptions": {} + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4810:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4824:4:2", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4810:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4829:6:2", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4810:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4839:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4810:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4790:50:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4770:70:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4855:13:2", + "subExpression": { + "id": 300, + "name": "initialSetup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 278, + "src": "4856:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4872:13:2", + "subExpression": { + "id": 302, + "name": "construction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "4873:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4855:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 309, + "nodeType": "IfStatement", + "src": "4851:91:2", + "trueBody": { + "id": 308, + "nodeType": "Block", + "src": "4887:55:2", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 305, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "4908:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4908:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 307, + "nodeType": "RevertStatement", + "src": "4901:30:2" + } + ] + } + }, + { + "expression": { + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 310, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4951:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 312, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4953:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "4951:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4968:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4951:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "4951:18:2" + }, + { + "condition": { + "id": 316, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 267, + "src": "4983:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 324, + "nodeType": "IfStatement", + "src": "4979:67:2", + "trueBody": { + "id": 323, + "nodeType": "Block", + "src": "4999:47:2", + "statements": [ + { + "expression": { + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 317, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "5013:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 319, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5015:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "5013:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5031:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5013:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 322, + "nodeType": "ExpressionStatement", + "src": "5013:22:2" + } + ] + } + }, + { + "id": 325, + "nodeType": "PlaceholderStatement", + "src": "5055:1:2" + }, + { + "condition": { + "id": 326, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 267, + "src": "5070:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 338, + "nodeType": "IfStatement", + "src": "5066:101:2", + "trueBody": { + "id": 337, + "nodeType": "Block", + "src": "5086:81:2", + "statements": [ + { + "expression": { + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 327, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "5100:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 329, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5102:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "5100:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5118:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5100:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 332, + "nodeType": "ExpressionStatement", + "src": "5100:23:2" + }, + { + "eventCall": { + "arguments": [ + { + "hexValue": "31", + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5154:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 333, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 257, + "src": "5142:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5142:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 336, + "nodeType": "EmitStatement", + "src": "5137:19:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 258, + "nodeType": "StructuredDocumentation", + "src": "3548:516:2", + "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event." + }, + "id": 340, + "name": "initializer", + "nameLocation": "4078:11:2", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [], + "src": "4089:2:2" + }, + "src": "4069:1104:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 386, + "nodeType": "Block", + "src": "6291:392:2", + "statements": [ + { + "assignments": [ + 347 + ], + "declarations": [ + { + "constant": false, + "id": 347, + "mutability": "mutable", + "name": "$", + "nameLocation": "6386:1:2", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "6357:30:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 346, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 345, + "name": "InitializableStorage", + "nameLocations": [ + "6357:20:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 243, + "src": "6357:20:2" + }, + "referencedDeclaration": 243, + "src": "6357:20:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 350, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 348, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "6390:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$243_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6390:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6357:59:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 351, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "6431:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6433:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "6431:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 353, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "6450:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6452:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "6450:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 355, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "6468:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6450:25:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6431:44:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 362, + "nodeType": "IfStatement", + "src": "6427:105:2", + "trueBody": { + "id": 361, + "nodeType": "Block", + "src": "6477:55:2", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 358, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "6498:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6498:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 360, + "nodeType": "RevertStatement", + "src": "6491:30:2" + } + ] + } + }, + { + "expression": { + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 363, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "6541:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 365, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6543:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "6541:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 366, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "6558:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6541:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 368, + "nodeType": "ExpressionStatement", + "src": "6541:24:2" + }, + { + "expression": { + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 369, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "6575:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 371, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6577:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "6575:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6593:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6575:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 374, + "nodeType": "ExpressionStatement", + "src": "6575:22:2" + }, + { + "id": 375, + "nodeType": "PlaceholderStatement", + "src": "6607:1:2" + }, + { + "expression": { + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 376, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 347, + "src": "6618:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 378, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6620:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "6618:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6636:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6618:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 381, + "nodeType": "ExpressionStatement", + "src": "6618:23:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 383, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "6668:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 382, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 257, + "src": "6656:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6656:20:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 385, + "nodeType": "EmitStatement", + "src": "6651:25:2" + } + ] + }, + "documentation": { + "id": 341, + "nodeType": "StructuredDocumentation", + "src": "5179:1068:2", + "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event." + }, + "id": 387, + "name": "reinitializer", + "nameLocation": "6261:13:2", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "version", + "nameLocation": "6282:7:2", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "6275:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 342, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6275:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6274:16:2" + }, + "src": "6252:431:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 394, + "nodeType": "Block", + "src": "6921:48:2", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 390, + "name": "_checkInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "6931:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6931:20:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 392, + "nodeType": "ExpressionStatement", + "src": "6931:20:2" + }, + { + "id": 393, + "nodeType": "PlaceholderStatement", + "src": "6961:1:2" + } + ] + }, + "documentation": { + "id": 388, + "nodeType": "StructuredDocumentation", + "src": "6689:199:2", + "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." + }, + "id": 395, + "name": "onlyInitializing", + "nameLocation": "6902:16:2", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "6918:2:2" + }, + "src": "6893:76:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 407, + "nodeType": "Block", + "src": "7136:89:2", + "statements": [ + { + "condition": { + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7150:18:2", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 399, + "name": "_isInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 476, + "src": "7151:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7151:17:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 406, + "nodeType": "IfStatement", + "src": "7146:73:2", + "trueBody": { + "id": 405, + "nodeType": "Block", + "src": "7170:49:2", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 402, + "name": "NotInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 252, + "src": "7191:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7191:17:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 404, + "nodeType": "RevertStatement", + "src": "7184:24:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 396, + "nodeType": "StructuredDocumentation", + "src": "6975:104:2", + "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}." + }, + "id": 408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkInitializing", + "nameLocation": "7093:18:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [], + "src": "7111:2:2" + }, + "returnParameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [], + "src": "7136:0:2" + }, + "scope": 486, + "src": "7084:141:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 453, + "nodeType": "Block", + "src": "7760:373:2", + "statements": [ + { + "assignments": [ + 414 + ], + "declarations": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "$", + "nameLocation": "7855:1:2", + "nodeType": "VariableDeclaration", + "scope": 453, + "src": "7826:30:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 413, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 412, + "name": "InitializableStorage", + "nameLocations": [ + "7826:20:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 243, + "src": "7826:20:2" + }, + "referencedDeclaration": 243, + "src": "7826:20:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 417, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 415, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "7859:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$243_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7859:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7826:59:2" + }, + { + "condition": { + "expression": { + "id": 418, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "7900:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 419, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7902:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "7900:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 424, + "nodeType": "IfStatement", + "src": "7896:76:2", + "trueBody": { + "id": 423, + "nodeType": "Block", + "src": "7917:55:2", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 420, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "7938:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7938:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 422, + "nodeType": "RevertStatement", + "src": "7931:30:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 425, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "7985:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 426, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7987:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "7985:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8008:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 428, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8008:6:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 427, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8003:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8003:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8016:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8003:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "7985:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 452, + "nodeType": "IfStatement", + "src": "7981:146:2", + "trueBody": { + "id": 451, + "nodeType": "Block", + "src": "8021:106:2", + "statements": [ + { + "expression": { + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 433, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "8035:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 435, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8037:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "8035:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "arguments": [ + { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8057:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 437, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8057:6:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 436, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8052:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8052:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8065:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8052:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8035:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 442, + "nodeType": "ExpressionStatement", + "src": "8035:33:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8104:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 445, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8104:6:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 444, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8099:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8099:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8112:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8099:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 443, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 257, + "src": "8087:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8087:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 450, + "nodeType": "EmitStatement", + "src": "8082:34:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 409, + "nodeType": "StructuredDocumentation", + "src": "7231:475:2", + "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." + }, + "id": 454, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disableInitializers", + "nameLocation": "7720:20:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 410, + "nodeType": "ParameterList", + "parameters": [], + "src": "7740:2:2" + }, + "returnParameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [], + "src": "7760:0:2" + }, + "scope": 486, + "src": "7711:422:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 464, + "nodeType": "Block", + "src": "8308:63:2", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 460, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "8325:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$243_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8325:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 462, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8352:12:2", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 239, + "src": "8325:39:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 459, + "id": 463, + "nodeType": "Return", + "src": "8318:46:2" + } + ] + }, + "documentation": { + "id": 455, + "nodeType": "StructuredDocumentation", + "src": "8139:99:2", + "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." + }, + "id": 465, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializedVersion", + "nameLocation": "8252:22:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 456, + "nodeType": "ParameterList", + "parameters": [], + "src": "8274:2:2" + }, + "returnParameters": { + "id": 459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 465, + "src": "8300:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 457, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8300:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8299:8:2" + }, + "scope": 486, + "src": "8243:128:2", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 475, + "nodeType": "Block", + "src": "8543:64:2", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 471, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "8560:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$243_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8560:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8587:13:2", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 242, + "src": "8560:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 470, + "id": 474, + "nodeType": "Return", + "src": "8553:47:2" + } + ] + }, + "documentation": { + "id": 466, + "nodeType": "StructuredDocumentation", + "src": "8377:105:2", + "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." + }, + "id": 476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isInitializing", + "nameLocation": "8496:15:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 467, + "nodeType": "ParameterList", + "parameters": [], + "src": "8511:2:2" + }, + "returnParameters": { + "id": 470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 469, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "8537:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 468, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8537:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8536:6:2" + }, + "scope": 486, + "src": "8487:120:2", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 484, + "nodeType": "Block", + "src": "8827:80:2", + "statements": [ + { + "AST": { + "nativeSrc": "8846:55:2", + "nodeType": "YulBlock", + "src": "8846:55:2", + "statements": [ + { + "nativeSrc": "8860:31:2", + "nodeType": "YulAssignment", + "src": "8860:31:2", + "value": { + "name": "INITIALIZABLE_STORAGE", + "nativeSrc": "8870:21:2", + "nodeType": "YulIdentifier", + "src": "8870:21:2" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "8860:6:2", + "nodeType": "YulIdentifier", + "src": "8860:6:2" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 481, + "isOffset": false, + "isSlot": true, + "src": "8860:6:2", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 246, + "isOffset": false, + "isSlot": false, + "src": "8870:21:2", + "valueSize": 1 + } + ], + "id": 483, + "nodeType": "InlineAssembly", + "src": "8837:64:2" + } + ] + }, + "documentation": { + "id": 477, + "nodeType": "StructuredDocumentation", + "src": "8613:67:2", + "text": " @dev Returns a pointer to the storage namespace." + }, + "id": 485, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializableStorage", + "nameLocation": "8746:24:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 478, + "nodeType": "ParameterList", + "parameters": [], + "src": "8770:2:2" + }, + "returnParameters": { + "id": 482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 481, + "mutability": "mutable", + "name": "$", + "nameLocation": "8824:1:2", + "nodeType": "VariableDeclaration", + "scope": 485, + "src": "8795:30:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 480, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 479, + "name": "InitializableStorage", + "nameLocations": [ + "8795:20:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 243, + "src": "8795:20:2" + }, + "referencedDeclaration": 243, + "src": "8795:20:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$243_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "8794:32:2" + }, + "scope": 486, + "src": "8737:170:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 487, + "src": "2349:6560:2", + "usedErrors": [ + 249, + 252 + ], + "usedEvents": [ + 257 + ] + } + ], + "src": "113:8797:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 516 + ] + }, + "id": 517, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 488, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:3" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 489, + "nodeType": "StructuredDocumentation", + "src": "127:496:3", + "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": 516, + "linearizedBaseContracts": [ + 516 + ], + "name": "Context", + "nameLocation": "642:7:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 497, + "nodeType": "Block", + "src": "718:34:3", + "statements": [ + { + "expression": { + "expression": { + "id": 494, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:3", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 493, + "id": 496, + "nodeType": "Return", + "src": "728:17:3" + } + ] + }, + "id": 498, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 490, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:3" + }, + "returnParameters": { + "id": 493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 492, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "709:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:3" + }, + "scope": 516, + "src": "656:96:3", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 506, + "nodeType": "Block", + "src": "825:32:3", + "statements": [ + { + "expression": { + "expression": { + "id": 503, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:3", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 502, + "id": 505, + "nodeType": "Return", + "src": "835:15:3" + } + ] + }, + "id": 507, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 499, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:3" + }, + "returnParameters": { + "id": 502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 501, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "809:14:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 500, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:3" + }, + "scope": 516, + "src": "758:99:3", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 514, + "nodeType": "Block", + "src": "935:25:3", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 511, + "id": 513, + "nodeType": "Return", + "src": "945:8:3" + } + ] + }, + "id": 515, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 508, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:3" + }, + "returnParameters": { + "id": 511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 515, + "src": "926:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:3" + }, + "scope": 516, + "src": "863:97:3", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 517, + "src": "624:338:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "exportedSymbols": { + "ECDSA": [ + 864 + ] + }, + "id": 865, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 518, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ECDSA", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 519, + "nodeType": "StructuredDocumentation", + "src": "138:205:4", + "text": " @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address." + }, + "fullyImplemented": true, + "id": 864, + "linearizedBaseContracts": [ + 864 + ], + "name": "ECDSA", + "nameLocation": "352:5:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ECDSA.RecoverError", + "id": 524, + "members": [ + { + "id": 520, + "name": "NoError", + "nameLocation": "392:7:4", + "nodeType": "EnumValue", + "src": "392:7:4" + }, + { + "id": 521, + "name": "InvalidSignature", + "nameLocation": "409:16:4", + "nodeType": "EnumValue", + "src": "409:16:4" + }, + { + "id": 522, + "name": "InvalidSignatureLength", + "nameLocation": "435:22:4", + "nodeType": "EnumValue", + "src": "435:22:4" + }, + { + "id": 523, + "name": "InvalidSignatureS", + "nameLocation": "467:17:4", + "nodeType": "EnumValue", + "src": "467:17:4" + } + ], + "name": "RecoverError", + "nameLocation": "369:12:4", + "nodeType": "EnumDefinition", + "src": "364:126:4" + }, + { + "documentation": { + "id": 525, + "nodeType": "StructuredDocumentation", + "src": "496:63:4", + "text": " @dev The signature derives the `address(0)`." + }, + "errorSelector": "f645eedf", + "id": 527, + "name": "ECDSAInvalidSignature", + "nameLocation": "570:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 526, + "nodeType": "ParameterList", + "parameters": [], + "src": "591:2:4" + }, + "src": "564:30:4" + }, + { + "documentation": { + "id": 528, + "nodeType": "StructuredDocumentation", + "src": "600:60:4", + "text": " @dev The signature has an invalid length." + }, + "errorSelector": "fce698f7", + "id": 532, + "name": "ECDSAInvalidSignatureLength", + "nameLocation": "671:27:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 530, + "mutability": "mutable", + "name": "length", + "nameLocation": "707:6:4", + "nodeType": "VariableDeclaration", + "scope": 532, + "src": "699:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "699:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "698:16:4" + }, + "src": "665:50:4" + }, + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "721:85:4", + "text": " @dev The signature has an S value that is in the upper half order." + }, + "errorSelector": "d78bce0c", + "id": 537, + "name": "ECDSAInvalidSignatureS", + "nameLocation": "817:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "s", + "nameLocation": "848:1:4", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "840:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 534, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "840:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "839:11:4" + }, + "src": "811:40:4" + }, + { + "body": { + "id": 589, + "nodeType": "Block", + "src": "2242:653:4", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 552, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 542, + "src": "2256:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2266:6:4", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2256:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3635", + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2276:2:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "2256:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 587, + "nodeType": "Block", + "src": "2781:108:4", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2811:1:4", + "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": 575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2803:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2803:7:4", + "typeDescriptions": {} + } + }, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2803:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 578, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "2815:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2828:22:4", + "memberName": "InvalidSignatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 522, + "src": "2815:35:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "expression": { + "id": 582, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 542, + "src": "2860:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2870:6:4", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2860:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2852:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 580, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2852:7:4", + "typeDescriptions": {} + } + }, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2852:25:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 585, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2802:76:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 551, + "id": 586, + "nodeType": "Return", + "src": "2795:83:4" + } + ] + }, + "id": 588, + "nodeType": "IfStatement", + "src": "2252:637:4", + "trueBody": { + "id": 573, + "nodeType": "Block", + "src": "2280:495:4", + "statements": [ + { + "assignments": [ + 557 + ], + "declarations": [ + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "r", + "nameLocation": "2302:1:4", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "2294:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 556, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2294:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 558, + "nodeType": "VariableDeclarationStatement", + "src": "2294:9:4" + }, + { + "assignments": [ + 560 + ], + "declarations": [ + { + "constant": false, + "id": 560, + "mutability": "mutable", + "name": "s", + "nameLocation": "2325:1:4", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "2317:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 559, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2317:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 561, + "nodeType": "VariableDeclarationStatement", + "src": "2317:9:4" + }, + { + "assignments": [ + 563 + ], + "declarations": [ + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "v", + "nameLocation": "2346:1:4", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "2340:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 562, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2340:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 564, + "nodeType": "VariableDeclarationStatement", + "src": "2340:7:4" + }, + { + "AST": { + "nativeSrc": "2548:171:4", + "nodeType": "YulBlock", + "src": "2548:171:4", + "statements": [ + { + "nativeSrc": "2566:32:4", + "nodeType": "YulAssignment", + "src": "2566:32:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2581:9:4", + "nodeType": "YulIdentifier", + "src": "2581:9:4" + }, + { + "kind": "number", + "nativeSrc": "2592:4:4", + "nodeType": "YulLiteral", + "src": "2592:4:4", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2577:3:4", + "nodeType": "YulIdentifier", + "src": "2577:3:4" + }, + "nativeSrc": "2577:20:4", + "nodeType": "YulFunctionCall", + "src": "2577:20:4" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2571:5:4", + "nodeType": "YulIdentifier", + "src": "2571:5:4" + }, + "nativeSrc": "2571:27:4", + "nodeType": "YulFunctionCall", + "src": "2571:27:4" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "2566:1:4", + "nodeType": "YulIdentifier", + "src": "2566:1:4" + } + ] + }, + { + "nativeSrc": "2615:32:4", + "nodeType": "YulAssignment", + "src": "2615:32:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2630:9:4", + "nodeType": "YulIdentifier", + "src": "2630:9:4" + }, + { + "kind": "number", + "nativeSrc": "2641:4:4", + "nodeType": "YulLiteral", + "src": "2641:4:4", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2626:3:4", + "nodeType": "YulIdentifier", + "src": "2626:3:4" + }, + "nativeSrc": "2626:20:4", + "nodeType": "YulFunctionCall", + "src": "2626:20:4" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2620:5:4", + "nodeType": "YulIdentifier", + "src": "2620:5:4" + }, + "nativeSrc": "2620:27:4", + "nodeType": "YulFunctionCall", + "src": "2620:27:4" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "2615:1:4", + "nodeType": "YulIdentifier", + "src": "2615:1:4" + } + ] + }, + { + "nativeSrc": "2664:41:4", + "nodeType": "YulAssignment", + "src": "2664:41:4", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2674:1:4", + "nodeType": "YulLiteral", + "src": "2674:1:4", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2687:9:4", + "nodeType": "YulIdentifier", + "src": "2687:9:4" + }, + { + "kind": "number", + "nativeSrc": "2698:4:4", + "nodeType": "YulLiteral", + "src": "2698:4:4", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2683:3:4", + "nodeType": "YulIdentifier", + "src": "2683:3:4" + }, + "nativeSrc": "2683:20:4", + "nodeType": "YulFunctionCall", + "src": "2683:20:4" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2677:5:4", + "nodeType": "YulIdentifier", + "src": "2677:5:4" + }, + "nativeSrc": "2677:27:4", + "nodeType": "YulFunctionCall", + "src": "2677:27:4" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "2669:4:4", + "nodeType": "YulIdentifier", + "src": "2669:4:4" + }, + "nativeSrc": "2669:36:4", + "nodeType": "YulFunctionCall", + "src": "2669:36:4" + }, + "variableNames": [ + { + "name": "v", + "nativeSrc": "2664:1:4", + "nodeType": "YulIdentifier", + "src": "2664:1:4" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 557, + "isOffset": false, + "isSlot": false, + "src": "2566:1:4", + "valueSize": 1 + }, + { + "declaration": 560, + "isOffset": false, + "isSlot": false, + "src": "2615:1:4", + "valueSize": 1 + }, + { + "declaration": 542, + "isOffset": false, + "isSlot": false, + "src": "2581:9:4", + "valueSize": 1 + }, + { + "declaration": 542, + "isOffset": false, + "isSlot": false, + "src": "2630:9:4", + "valueSize": 1 + }, + { + "declaration": 542, + "isOffset": false, + "isSlot": false, + "src": "2687:9:4", + "valueSize": 1 + }, + { + "declaration": 563, + "isOffset": false, + "isSlot": false, + "src": "2664:1:4", + "valueSize": 1 + } + ], + "id": 565, + "nodeType": "InlineAssembly", + "src": "2539:180:4" + }, + { + "expression": { + "arguments": [ + { + "id": 567, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "2750:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 568, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "2756:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 569, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "2759:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 570, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "2762:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 566, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 590, + 670, + 778 + ], + "referencedDeclaration": 778, + "src": "2739:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2739:25:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 551, + "id": 572, + "nodeType": "Return", + "src": "2732:32:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 538, + "nodeType": "StructuredDocumentation", + "src": "857:1267:4", + "text": " @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]" + }, + "id": 590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "2138:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "hash", + "nameLocation": "2157:4:4", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "2149:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 539, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2149:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 542, + "mutability": "mutable", + "name": "signature", + "nameLocation": "2176:9:4", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "2163:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 541, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2163:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2148:38:4" + }, + "returnParameters": { + "id": 551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "2210:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2210:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 548, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "2219:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 547, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 546, + "name": "RecoverError", + "nameLocations": [ + "2219:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "2219:12:4" + }, + "referencedDeclaration": 524, + "src": "2219:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 590, + "src": "2233:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 549, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2233:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2209:32:4" + }, + "scope": 864, + "src": "2129:766:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 619, + "nodeType": "Block", + "src": "3789:168:4", + "statements": [ + { + "assignments": [ + 601, + 604, + 606 + ], + "declarations": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "3808:9:4", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "3800:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3800:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 604, + "mutability": "mutable", + "name": "error", + "nameLocation": "3832:5:4", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "3819:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 603, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 602, + "name": "RecoverError", + "nameLocations": [ + "3819:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "3819:12:4" + }, + "referencedDeclaration": 524, + "src": "3819:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 606, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "3847:8:4", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "3839:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 605, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3839:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 611, + "initialValue": { + "arguments": [ + { + "id": 608, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "3870:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 609, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "3876:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 607, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 590, + 670, + 778 + ], + "referencedDeclaration": 590, + "src": "3859:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3859:27:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3799:87:4" + }, + { + "expression": { + "arguments": [ + { + "id": 613, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "3908:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 614, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "3915:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 612, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 863, + "src": "3896:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$524_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3896:28:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 616, + "nodeType": "ExpressionStatement", + "src": "3896:28:4" + }, + { + "expression": { + "id": 617, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "3941:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 599, + "id": 618, + "nodeType": "Return", + "src": "3934:16:4" + } + ] + }, + "documentation": { + "id": 591, + "nodeType": "StructuredDocumentation", + "src": "2901:796:4", + "text": " @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it." + }, + "id": 620, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "3711:7:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "hash", + "nameLocation": "3727:4:4", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "3719:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 592, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3719:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "signature", + "nameLocation": "3746:9:4", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "3733:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 594, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3733:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3718:38:4" + }, + "returnParameters": { + "id": 599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 598, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "3780:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3780:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3779:9:4" + }, + "scope": 864, + "src": "3702:255:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 669, + "nodeType": "Block", + "src": "4285:342:4", + "statements": [ + { + "id": 668, + "nodeType": "UncheckedBlock", + "src": "4295:326:4", + "statements": [ + { + "assignments": [ + 638 + ], + "declarations": [ + { + "constant": false, + "id": 638, + "mutability": "mutable", + "name": "s", + "nameLocation": "4327:1:4", + "nodeType": "VariableDeclaration", + "scope": 668, + "src": "4319:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 637, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4319:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 645, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 639, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "4331:2:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "arguments": [ + { + "hexValue": "307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4344:66:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9967" + }, + "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9967" + } + ], + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4336:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 640, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4336:7:4", + "typeDescriptions": {} + } + }, + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4336:75:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4331:80:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4319:92:4" + }, + { + "assignments": [ + 647 + ], + "declarations": [ + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "v", + "nameLocation": "4528:1:4", + "nodeType": "VariableDeclaration", + "scope": 668, + "src": "4522:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 646, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4522:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 660, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 652, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "4547:2:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4539:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 650, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4539:7:4", + "typeDescriptions": {} + } + }, + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4539:11:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4554:3:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "4539:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 656, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4538:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3237", + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4561:2:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "4538:25:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4532:5:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 648, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4532:5:4", + "typeDescriptions": {} + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4532:32:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4522:42:4" + }, + { + "expression": { + "arguments": [ + { + "id": 662, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 623, + "src": "4596:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 663, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "4602:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 664, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "4605:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 665, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "4608:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 661, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 590, + 670, + 778 + ], + "referencedDeclaration": 778, + "src": "4585:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4585:25:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 636, + "id": 667, + "nodeType": "Return", + "src": "4578:32:4" + } + ] + } + ] + }, + "documentation": { + "id": 621, + "nodeType": "StructuredDocumentation", + "src": "3963:205:4", + "text": " @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]" + }, + "id": 670, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "4182:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 623, + "mutability": "mutable", + "name": "hash", + "nameLocation": "4201:4:4", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4193:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 622, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4193:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 625, + "mutability": "mutable", + "name": "r", + "nameLocation": "4215:1:4", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4207:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4207:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "vs", + "nameLocation": "4226:2:4", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4218:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 626, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4218:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4192:37:4" + }, + "returnParameters": { + "id": 636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 630, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4253:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 633, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4262:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 632, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 631, + "name": "RecoverError", + "nameLocations": [ + "4262:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "4262:12:4" + }, + "referencedDeclaration": 524, + "src": "4262:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4276:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 634, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4276:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4252:32:4" + }, + "scope": 864, + "src": "4173:454:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 702, + "nodeType": "Block", + "src": "4840:164:4", + "statements": [ + { + "assignments": [ + 683, + 686, + 688 + ], + "declarations": [ + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "4859:9:4", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4851:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4851:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "error", + "nameLocation": "4883:5:4", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4870:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 685, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 684, + "name": "RecoverError", + "nameLocations": [ + "4870:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "4870:12:4" + }, + "referencedDeclaration": 524, + "src": "4870:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "4898:8:4", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4890:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 687, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4890:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 694, + "initialValue": { + "arguments": [ + { + "id": 690, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 673, + "src": "4921:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 691, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "4927:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 692, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "4930:2:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 689, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 590, + 670, + 778 + ], + "referencedDeclaration": 670, + "src": "4910:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4910:23:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4850:83:4" + }, + { + "expression": { + "arguments": [ + { + "id": 696, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "4955:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 697, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 688, + "src": "4962:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 695, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 863, + "src": "4943:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$524_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4943:28:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 699, + "nodeType": "ExpressionStatement", + "src": "4943:28:4" + }, + { + "expression": { + "id": 700, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 683, + "src": "4988:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 681, + "id": 701, + "nodeType": "Return", + "src": "4981:16:4" + } + ] + }, + "documentation": { + "id": 671, + "nodeType": "StructuredDocumentation", + "src": "4633:116:4", + "text": " @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately." + }, + "id": 703, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "4763:7:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "mutability": "mutable", + "name": "hash", + "nameLocation": "4779:4:4", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "4771:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 672, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4771:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "r", + "nameLocation": "4793:1:4", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "4785:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 674, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4785:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "vs", + "nameLocation": "4804:2:4", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "4796:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 676, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4796:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4770:37:4" + }, + "returnParameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 680, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "4831:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4831:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4830:9:4" + }, + "scope": 864, + "src": "4754:250:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 777, + "nodeType": "Block", + "src": "5298:1372:4", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 724, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "6194:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6186:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:4", + "typeDescriptions": {} + } + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6186:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130", + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6199:66:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1", + "typeString": "int_const 5789...(69 digits omitted)...7168" + }, + "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0" + }, + "src": "6186:79:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 738, + "nodeType": "IfStatement", + "src": "6182:164:4", + "trueBody": { + "id": 737, + "nodeType": "Block", + "src": "6267:79:4", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6297:1:4", + "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": 729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6289:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:4", + "typeDescriptions": {} + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6289:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 732, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "6301:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6314:17:4", + "memberName": "InvalidSignatureS", + "nodeType": "MemberAccess", + "referencedDeclaration": 523, + "src": "6301:30:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 734, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "6333:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 735, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6288:47:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 721, + "id": 736, + "nodeType": "Return", + "src": "6281:54:4" + } + ] + } + }, + { + "assignments": [ + 740 + ], + "declarations": [ + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "signer", + "nameLocation": "6448:6:4", + "nodeType": "VariableDeclaration", + "scope": 777, + "src": "6440:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6440:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 747, + "initialValue": { + "arguments": [ + { + "id": 742, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6467:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 743, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6473:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 744, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "6476:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 745, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "6479:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 741, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "6457:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6457:24:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6440:41:4" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 748, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 740, + "src": "6495:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6513:1:4", + "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": 750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6505:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6505:7:4", + "typeDescriptions": {} + } + }, + "id": 752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6505:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6495:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 767, + "nodeType": "IfStatement", + "src": "6491:113:4", + "trueBody": { + "id": 766, + "nodeType": "Block", + "src": "6517:87:4", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6547:1:4", + "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": 755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6539:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6539:7:4", + "typeDescriptions": {} + } + }, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6539:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 758, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "6551:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6564:16:4", + "memberName": "InvalidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 521, + "src": "6551:29:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6590:1:4", + "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": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6582:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 760, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6582:7:4", + "typeDescriptions": {} + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6582:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 764, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6538:55:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 721, + "id": 765, + "nodeType": "Return", + "src": "6531:62:4" + } + ] + } + }, + { + "expression": { + "components": [ + { + "id": 768, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 740, + "src": "6622:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 769, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "6630:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6643:7:4", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 520, + "src": "6630:20:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6660:1:4", + "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": 772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6652:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 771, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6652:7:4", + "typeDescriptions": {} + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6652:10:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 775, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6621:42:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 721, + "id": 776, + "nodeType": "Return", + "src": "6614:49:4" + } + ] + }, + "documentation": { + "id": 704, + "nodeType": "StructuredDocumentation", + "src": "5010:125:4", + "text": " @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately." + }, + "id": 778, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "5149:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "hash", + "nameLocation": "5177:4:4", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5169:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 705, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5169:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "v", + "nameLocation": "5197:1:4", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5191:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 707, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5191:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "r", + "nameLocation": "5216:1:4", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5208:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 709, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5208:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 712, + "mutability": "mutable", + "name": "s", + "nameLocation": "5235:1:4", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5227:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 711, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5159:83:4" + }, + "returnParameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 715, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5266:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5266:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5275:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 717, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 716, + "name": "RecoverError", + "nameLocations": [ + "5275:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "5275:12:4" + }, + "referencedDeclaration": 524, + "src": "5275:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 778, + "src": "5289:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 719, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5289:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5265:32:4" + }, + "scope": 864, + "src": "5140:1530:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "6897:166:4", + "statements": [ + { + "assignments": [ + 793, + 796, + 798 + ], + "declarations": [ + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "6916:9:4", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "6908:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6908:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "error", + "nameLocation": "6940:5:4", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "6927:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 795, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 794, + "name": "RecoverError", + "nameLocations": [ + "6927:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "6927:12:4" + }, + "referencedDeclaration": 524, + "src": "6927:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 798, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "6955:8:4", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "6947:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 797, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6947:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 805, + "initialValue": { + "arguments": [ + { + "id": 800, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "6978:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 801, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 783, + "src": "6984:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 802, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "6987:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 803, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "6990:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 799, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 590, + 670, + 778 + ], + "referencedDeclaration": 778, + "src": "6967:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6967:25:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$524_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6907:85:4" + }, + { + "expression": { + "arguments": [ + { + "id": 807, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "7014:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 808, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "7021:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 806, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 863, + "src": "7002:11:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$524_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7002:28:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 810, + "nodeType": "ExpressionStatement", + "src": "7002:28:4" + }, + { + "expression": { + "id": 811, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "7047:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 791, + "id": 812, + "nodeType": "Return", + "src": "7040:16:4" + } + ] + }, + "documentation": { + "id": 779, + "nodeType": "StructuredDocumentation", + "src": "6676:122:4", + "text": " @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately." + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "6812:7:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 781, + "mutability": "mutable", + "name": "hash", + "nameLocation": "6828:4:4", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6820:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 780, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6820:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 783, + "mutability": "mutable", + "name": "v", + "nameLocation": "6840:1:4", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6834:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 782, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6834:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 785, + "mutability": "mutable", + "name": "r", + "nameLocation": "6851:1:4", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6843:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 784, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6843:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 787, + "mutability": "mutable", + "name": "s", + "nameLocation": "6862:1:4", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6854:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 786, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6854:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6819:45:4" + }, + "returnParameters": { + "id": 791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 790, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "6888:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6888:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6887:9:4" + }, + "scope": 864, + "src": "6803:260:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 862, + "nodeType": "Block", + "src": "7268:460:4", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 823, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 818, + "src": "7282:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 824, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "7291:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7304:7:4", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 520, + "src": "7291:20:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7282:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 829, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 818, + "src": "7378:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 830, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "7387:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7400:16:4", + "memberName": "InvalidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 521, + "src": "7387:29:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7378:38:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 837, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 818, + "src": "7483:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 838, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "7492:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7505:22:4", + "memberName": "InvalidSignatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 522, + "src": "7492:35:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7483:44:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 849, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 818, + "src": "7617:5:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 850, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "7626:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$524_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7639:17:4", + "memberName": "InvalidSignatureS", + "nodeType": "MemberAccess", + "referencedDeclaration": 523, + "src": "7626:30:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7617:39:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 858, + "nodeType": "IfStatement", + "src": "7613:109:4", + "trueBody": { + "id": 857, + "nodeType": "Block", + "src": "7658:64:4", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 854, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "7702:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 853, + "name": "ECDSAInvalidSignatureS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "7679:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) pure" + } + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7679:32:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 856, + "nodeType": "RevertStatement", + "src": "7672:39:4" + } + ] + } + }, + "id": 859, + "nodeType": "IfStatement", + "src": "7479:243:4", + "trueBody": { + "id": 848, + "nodeType": "Block", + "src": "7529:78:4", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "id": 844, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "7586:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7578:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7578:7:4", + "typeDescriptions": {} + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7578:17:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 841, + "name": "ECDSAInvalidSignatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "7550:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7550:46:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 847, + "nodeType": "RevertStatement", + "src": "7543:53:4" + } + ] + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "7374:348:4", + "trueBody": { + "id": 836, + "nodeType": "Block", + "src": "7418:55:4", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 833, + "name": "ECDSAInvalidSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "7439:21:4", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7439:23:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "RevertStatement", + "src": "7432:30:4" + } + ] + } + }, + "id": 861, + "nodeType": "IfStatement", + "src": "7278:444:4", + "trueBody": { + "id": 828, + "nodeType": "Block", + "src": "7313:55:4", + "statements": [ + { + "functionReturnParameters": 822, + "id": 827, + "nodeType": "Return", + "src": "7327:7:4" + } + ] + } + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "7069:122:4", + "text": " @dev Optionally reverts with the corresponding custom error according to the `error` argument provided." + }, + "id": 863, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_throwError", + "nameLocation": "7205:11:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 818, + "mutability": "mutable", + "name": "error", + "nameLocation": "7230:5:4", + "nodeType": "VariableDeclaration", + "scope": 863, + "src": "7217:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 817, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 816, + "name": "RecoverError", + "nameLocations": [ + "7217:12:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 524, + "src": "7217:12:4" + }, + "referencedDeclaration": 524, + "src": "7217:12:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$524", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 820, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "7245:8:4", + "nodeType": "VariableDeclaration", + "scope": 863, + "src": "7237:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 819, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7237:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7216:38:4" + }, + "returnParameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [], + "src": "7268:0:4" + }, + "scope": 864, + "src": "7196:532:4", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 865, + "src": "344:7386:4", + "usedErrors": [ + 527, + 532, + 537 + ], + "usedEvents": [] + } + ], + "src": "112:7619:4" + }, + "id": 4 + }, + "contracts/IExtendedResolver.sol": { + "ast": { + "absolutePath": "contracts/IExtendedResolver.sol", + "exportedSymbols": { + "IExtendedResolver": [ + 876 + ] + }, + "id": 877, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 866, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "32:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IExtendedResolver", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 876, + "linearizedBaseContracts": [ + 876 + ], + "name": "IExtendedResolver", + "nameLocation": "67:17:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "9061b923", + "id": 875, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "resolve", + "nameLocation": "100:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 868, + "mutability": "mutable", + "name": "name", + "nameLocation": "130:4:5", + "nodeType": "VariableDeclaration", + "scope": 875, + "src": "117:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 867, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "117:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 870, + "mutability": "mutable", + "name": "data", + "nameLocation": "157:4:5", + "nodeType": "VariableDeclaration", + "scope": 875, + "src": "144:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 869, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "144:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "107:60:5" + }, + "returnParameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 875, + "src": "191:12:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 872, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "191:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "190:14:5" + }, + "scope": 876, + "src": "91:114:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 877, + "src": "57:150:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:176:5" + }, + "id": 5 + }, + "contracts/OffchainResolver.sol": { + "ast": { + "absolutePath": "contracts/OffchainResolver.sol", + "exportedSymbols": { + "Context": [ + 516 + ], + "ECDSA": [ + 864 + ], + "IExtendedResolver": [ + 876 + ], + "IResolverService": [ + 897 + ], + "ISupportsInterface": [ + 1345 + ], + "Initializable": [ + 486 + ], + "OffchainResolver": [ + 1163 + ], + "Ownable": [ + 147 + ], + "SignatureVerifier": [ + 1335 + ], + "SupportsInterface": [ + 1364 + ] + }, + "id": 1164, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 878, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "32:23:6" + }, + { + "absolutePath": "contracts/SupportsInterface.sol", + "file": "./SupportsInterface.sol", + "id": 879, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1164, + "sourceUnit": 1365, + "src": "57:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/IExtendedResolver.sol", + "file": "./IExtendedResolver.sol", + "id": 880, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1164, + "sourceUnit": 877, + "src": "91:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/SignatureVerifier.sol", + "file": "./SignatureVerifier.sol", + "id": 881, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1164, + "sourceUnit": 1336, + "src": "125:33:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 882, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1164, + "sourceUnit": 148, + "src": "159:52:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "id": 883, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1164, + "sourceUnit": 487, + "src": "212:63:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IResolverService", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 897, + "linearizedBaseContracts": [ + 897 + ], + "name": "IResolverService", + "nameLocation": "287:16:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "9061b923", + "id": 896, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "resolve", + "nameLocation": "319:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "name", + "nameLocation": "351:4:6", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "336:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 884, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "336:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "data", + "nameLocation": "380:4:6", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "365:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 886, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "365:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "326:64:6" + }, + "returnParameters": { + "id": 895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "result", + "nameLocation": "451:6:6", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "438:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 889, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "438:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "expires", + "nameLocation": "466:7:6", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "459:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 891, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "459:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 894, + "mutability": "mutable", + "name": "sig", + "nameLocation": "488:3:6", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "475:16:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 893, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "475:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "437:55:6" + }, + "scope": 897, + "src": "310:183:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1164, + "src": "277:218:6", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 899, + "name": "IExtendedResolver", + "nameLocations": [ + "666:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 876, + "src": "666:17:6" + }, + "id": 900, + "nodeType": "InheritanceSpecifier", + "src": "666:17:6" + }, + { + "baseName": { + "id": 901, + "name": "SupportsInterface", + "nameLocations": [ + "689:17:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1364, + "src": "689:17:6" + }, + "id": 902, + "nodeType": "InheritanceSpecifier", + "src": "689:17:6" + }, + { + "baseName": { + "id": 903, + "name": "Ownable", + "nameLocations": [ + "712:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "712:7:6" + }, + "id": 904, + "nodeType": "InheritanceSpecifier", + "src": "712:7:6" + }, + { + "baseName": { + "id": 905, + "name": "Initializable", + "nameLocations": [ + "725:13:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 486, + "src": "725:13:6" + }, + "id": 906, + "nodeType": "InheritanceSpecifier", + "src": "725:13:6" + } + ], + "canonicalName": "OffchainResolver", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 898, + "nodeType": "StructuredDocumentation", + "src": "497:135:6", + "text": " Implements an ENS resolver that directs all queries to a CCIP read gateway.\n Callers must implement EIP 3668 and ENSIP 10." + }, + "fullyImplemented": true, + "id": 1163, + "linearizedBaseContracts": [ + 1163, + 486, + 147, + 516, + 1364, + 1345, + 876 + ], + "name": "OffchainResolver", + "nameLocation": "642:16:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "5600f04f", + "id": 908, + "mutability": "mutable", + "name": "url", + "nameLocation": "759:3:6", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "745:17:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 907, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "745:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "736c0d5b", + "id": 912, + "mutability": "mutable", + "name": "signers", + "nameLocation": "800:7:6", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "768:39:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 911, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "776:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "768:24:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 910, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "787:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "ab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7", + "id": 917, + "name": "NewSigners", + "nameLocation": "820:10:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 915, + "indexed": false, + "mutability": "mutable", + "name": "signers", + "nameLocation": "841:7:6", + "nodeType": "VariableDeclaration", + "scope": 917, + "src": "831:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 913, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "831:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 914, + "nodeType": "ArrayTypeName", + "src": "831:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "830:19:6" + }, + "src": "814:36:6" + }, + { + "errorSelector": "556f1830", + "id": 930, + "name": "OffchainLookup", + "nameLocation": "861:14:6", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 929, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "sender", + "nameLocation": "893:6:6", + "nodeType": "VariableDeclaration", + "scope": 930, + "src": "885:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 922, + "mutability": "mutable", + "name": "urls", + "nameLocation": "918:4:6", + "nodeType": "VariableDeclaration", + "scope": 930, + "src": "909:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 920, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "909:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 921, + "nodeType": "ArrayTypeName", + "src": "909:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 924, + "mutability": "mutable", + "name": "callData", + "nameLocation": "938:8:6", + "nodeType": "VariableDeclaration", + "scope": 930, + "src": "932:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 923, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "932:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 926, + "mutability": "mutable", + "name": "callbackFunction", + "nameLocation": "963:16:6", + "nodeType": "VariableDeclaration", + "scope": 930, + "src": "956:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 925, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "956:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 928, + "mutability": "mutable", + "name": "extraData", + "nameLocation": "995:9:6", + "nodeType": "VariableDeclaration", + "scope": 930, + "src": "989:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 927, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "989:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "875:135:6" + }, + "src": "855:156:6" + }, + { + "body": { + "id": 940, + "nodeType": "Block", + "src": "1051:39:6", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 937, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 454, + "src": "1061:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1061:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 939, + "nodeType": "ExpressionStatement", + "src": "1061:22:6" + } + ] + }, + "id": 941, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "expression": { + "id": 933, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1039:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1043:6:6", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1039:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 935, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 932, + "name": "Ownable", + "nameLocations": [ + "1031:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "1031:7:6" + }, + "nodeType": "ModifierInvocation", + "src": "1031:19:6" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 931, + "nodeType": "ParameterList", + "parameters": [], + "src": "1028:2:6" + }, + "returnParameters": { + "id": 936, + "nodeType": "ParameterList", + "parameters": [], + "src": "1051:0:6" + }, + "scope": 1163, + "src": "1017:73:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 980, + "nodeType": "Block", + "src": "1206:166:6", + "statements": [ + { + "expression": { + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 951, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "1216:3:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 952, + "name": "_url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 943, + "src": "1222:4:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1216:10:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 954, + "nodeType": "ExpressionStatement", + "src": "1216:10:6" + }, + { + "body": { + "id": 974, + "nodeType": "Block", + "src": "1279:52:6", + "statements": [ + { + "expression": { + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 966, + "name": "signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "1293:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 970, + "indexExpression": { + "baseExpression": { + "id": 967, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1301:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 969, + "indexExpression": { + "id": 968, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 956, + "src": "1310:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1301:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1293:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1316:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1293:27:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 973, + "nodeType": "ExpressionStatement", + "src": "1293:27:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 959, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 956, + "src": "1253:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 960, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1257:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1266:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1257:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1253:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 975, + "initializationExpression": { + "assignments": [ + 956 + ], + "declarations": [ + { + "constant": false, + "id": 956, + "mutability": "mutable", + "name": "i", + "nameLocation": "1246:1:6", + "nodeType": "VariableDeclaration", + "scope": 975, + "src": "1241:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 955, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1241:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 958, + "initialValue": { + "hexValue": "30", + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1250:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1241:10:6" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1274:3:6", + "subExpression": { + "id": 963, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 956, + "src": "1274:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "1274:3:6" + }, + "nodeType": "ForStatement", + "src": "1236:95:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 977, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1356:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 976, + "name": "NewSigners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "1345:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address[] memory)" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1345:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 979, + "nodeType": "EmitStatement", + "src": "1340:25:6" + } + ] + }, + "functionSelector": "a644cbdc", + "id": 981, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 949, + "kind": "modifierInvocation", + "modifierName": { + "id": 948, + "name": "initializer", + "nameLocations": [ + "1194:11:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 340, + "src": "1194:11:6" + }, + "nodeType": "ModifierInvocation", + "src": "1194:11:6" + } + ], + "name": "initialize", + "nameLocation": "1105:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 943, + "mutability": "mutable", + "name": "_url", + "nameLocation": "1139:4:6", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "1125:18:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 942, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1125:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 946, + "mutability": "mutable", + "name": "_signers", + "nameLocation": "1170:8:6", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "1153:25:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1153:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 945, + "nodeType": "ArrayTypeName", + "src": "1153:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "1115:69:6" + }, + "returnParameters": { + "id": 950, + "nodeType": "ParameterList", + "parameters": [], + "src": "1206:0:6" + }, + "scope": 1163, + "src": "1096:276:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1002, + "nodeType": "Block", + "src": "1550:183:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 996, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "1632:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 997, + "name": "expires", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 985, + "src": "1656:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 998, + "name": "request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "1681:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 999, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "1706:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 994, + "name": "SignatureVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "1579:17:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignatureVerifier_$1335_$", + "typeString": "type(library SignatureVerifier)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1597:17:6", + "memberName": "makeSignatureHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 1264, + "src": "1579:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address,uint64,bytes memory,bytes memory) pure returns (bytes32)" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1579:147:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 993, + "id": 1001, + "nodeType": "Return", + "src": "1560:166:6" + } + ] + }, + "functionSelector": "1dcfea09", + "id": 1003, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "makeSignatureHash", + "nameLocation": "1387:17:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 983, + "mutability": "mutable", + "name": "target", + "nameLocation": "1422:6:6", + "nodeType": "VariableDeclaration", + "scope": 1003, + "src": "1414:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1414:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 985, + "mutability": "mutable", + "name": "expires", + "nameLocation": "1445:7:6", + "nodeType": "VariableDeclaration", + "scope": 1003, + "src": "1438:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 984, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1438:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "request", + "nameLocation": "1475:7:6", + "nodeType": "VariableDeclaration", + "scope": 1003, + "src": "1462:20:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 986, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1462:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "result", + "nameLocation": "1505:6:6", + "nodeType": "VariableDeclaration", + "scope": 1003, + "src": "1492:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 988, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1492:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1404:113:6" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1003, + "src": "1541:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 991, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1541:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1540:9:6" + }, + "scope": 1163, + "src": "1378:355:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 875 + ], + "body": { + "id": 1062, + "nodeType": "Block", + "src": "2195:440:6", + "statements": [ + { + "assignments": [ + 1015 + ], + "declarations": [ + { + "constant": false, + "id": 1015, + "mutability": "mutable", + "name": "callData", + "nameLocation": "2218:8:6", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "2205:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1014, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2205:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1024, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1018, + "name": "IResolverService", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "2265:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IResolverService_$897_$", + "typeString": "type(contract IResolverService)" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2282:7:6", + "memberName": "resolve", + "nodeType": "MemberAccess", + "referencedDeclaration": 896, + "src": "2265:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_view$_t_bytes_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$", + "typeString": "function IResolverService.resolve(bytes calldata,bytes calldata) view returns (bytes memory,uint64,bytes memory)" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2290:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2265:33:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 1021, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1006, + "src": "2312:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "id": 1022, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1008, + "src": "2330:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "id": 1016, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2229:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2233:18:6", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "2229:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2229:115:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2205:139:6" + }, + { + "assignments": [ + 1029 + ], + "declarations": [ + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "urls", + "nameLocation": "2370:4:6", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "2354:20:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 1027, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2354:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1028, + "nodeType": "ArrayTypeName", + "src": "2354:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "id": 1035, + "initialValue": { + "arguments": [ + { + "hexValue": "31", + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2390:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2377:12:6", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 1030, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2381:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1031, + "nodeType": "ArrayTypeName", + "src": "2381:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + } + }, + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2377:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2354:38:6" + }, + { + "expression": { + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1036, + "name": "urls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "2402:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + "id": 1038, + "indexExpression": { + "hexValue": "30", + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2407:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2402:7:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1039, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "2412:3:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "src": "2402:13:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "id": 1041, + "nodeType": "ExpressionStatement", + "src": "2402:13:6" + }, + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "id": 1045, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2468:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OffchainResolver_$1163", + "typeString": "contract OffchainResolver" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_OffchainResolver_$1163", + "typeString": "contract OffchainResolver" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2460:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2460:7:6", + "typeDescriptions": {} + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2460:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1047, + "name": "urls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1029, + "src": "2487:4:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + } + }, + { + "id": 1048, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "2505:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "expression": { + "expression": { + "id": 1049, + "name": "OffchainResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1163, + "src": "2527:16:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OffchainResolver_$1163_$", + "typeString": "type(contract OffchainResolver)" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2544:16:6", + "memberName": "resolveWithProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 1093, + "src": "2527:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_view$_t_bytes_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function OffchainResolver.resolveWithProof(bytes calldata,bytes calldata) view returns (bytes memory)" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2561:8:6", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "2527:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [ + { + "id": 1054, + "name": "callData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "2594:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "arguments": [ + { + "id": 1057, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2612:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_OffchainResolver_$1163", + "typeString": "contract OffchainResolver" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_OffchainResolver_$1163", + "typeString": "contract OffchainResolver" + } + ], + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2604:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2604:7:6", + "typeDescriptions": {} + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2604:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1052, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2583:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2587:6:6", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "2583:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2583:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1042, + "name": "OffchainLookup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 930, + "src": "2432:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes4_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,string memory[] memory,bytes memory,bytes4,bytes memory) pure" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2432:196:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1061, + "nodeType": "RevertStatement", + "src": "2425:203:6" + } + ] + }, + "documentation": { + "id": 1004, + "nodeType": "StructuredDocumentation", + "src": "1739:324:6", + "text": " Resolves a name, as specified by ENSIP 10.\n @param name The DNS-encoded name to resolve.\n @param data The ABI encoded data for the underlying resolution function (Eg, addr(bytes32), text(bytes32,string), etc).\n @return The return data, ABI encoded identically to the underlying function." + }, + "functionSelector": "9061b923", + "id": 1063, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "resolve", + "nameLocation": "2077:7:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1010, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2163:8:6" + }, + "parameters": { + "id": 1009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1006, + "mutability": "mutable", + "name": "name", + "nameLocation": "2109:4:6", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "2094:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1005, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2094:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1008, + "mutability": "mutable", + "name": "data", + "nameLocation": "2138:4:6", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "2123:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1007, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2123:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2084:64:6" + }, + "returnParameters": { + "id": 1013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1012, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "2181:12:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1011, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2181:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2180:14:6" + }, + "scope": 1163, + "src": "2068:567:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1092, + "nodeType": "Block", + "src": "2880:232:6", + "statements": [ + { + "assignments": [ + 1074, + 1076 + ], + "declarations": [ + { + "constant": false, + "id": 1074, + "mutability": "mutable", + "name": "signer", + "nameLocation": "2899:6:6", + "nodeType": "VariableDeclaration", + "scope": 1092, + "src": "2891:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2891:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1076, + "mutability": "mutable", + "name": "result", + "nameLocation": "2920:6:6", + "nodeType": "VariableDeclaration", + "scope": 1092, + "src": "2907:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1075, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2907:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1082, + "initialValue": { + "arguments": [ + { + "id": 1079, + "name": "extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "2968:9:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "id": 1080, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "2991:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "id": 1077, + "name": "SignatureVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "2930:17:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignatureVerifier_$1335_$", + "typeString": "type(library SignatureVerifier)" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2948:6:6", + "memberName": "verify", + "nodeType": "MemberAccess", + "referencedDeclaration": 1334, + "src": "2930:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_address_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes calldata,bytes calldata) view returns (address,bytes memory)" + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:79:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_ptr_$", + "typeString": "tuple(address,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2890:119:6" + }, + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1084, + "name": "signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "3027:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1086, + "indexExpression": { + "id": 1085, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "3035:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3027:15:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5369676e617475726556657269666965723a20496e76616c6964207369676174757265", + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3044:37:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22", + "typeString": "literal_string \"SignatureVerifier: Invalid sigature\"" + }, + "value": "SignatureVerifier: Invalid sigature" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22", + "typeString": "literal_string \"SignatureVerifier: Invalid sigature\"" + } + ], + "id": 1083, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3019:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3019:63:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1089, + "nodeType": "ExpressionStatement", + "src": "3019:63:6" + }, + { + "expression": { + "id": 1090, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1076, + "src": "3099:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1072, + "id": 1091, + "nodeType": "Return", + "src": "3092:13:6" + } + ] + }, + "documentation": { + "id": 1064, + "nodeType": "StructuredDocumentation", + "src": "2641:98:6", + "text": " Callback used by CCIP read compatible clients to verify and parse the response." + }, + "functionSelector": "f4d4d2f8", + "id": 1093, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "resolveWithProof", + "nameLocation": "2753:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1066, + "mutability": "mutable", + "name": "response", + "nameLocation": "2794:8:6", + "nodeType": "VariableDeclaration", + "scope": 1093, + "src": "2779:23:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1065, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2779:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1068, + "mutability": "mutable", + "name": "extraData", + "nameLocation": "2827:9:6", + "nodeType": "VariableDeclaration", + "scope": 1093, + "src": "2812:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1067, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2812:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2769:73:6" + }, + "returnParameters": { + "id": 1072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1071, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1093, + "src": "2866:12:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1070, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2866:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2865:14:6" + }, + "scope": 1163, + "src": "2744:368:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1363 + ], + "body": { + "id": 1113, + "nodeType": "Block", + "src": "3215:138:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1101, + "name": "interfaceID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1095, + "src": "3244:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1103, + "name": "IExtendedResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 876, + "src": "3264:17:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IExtendedResolver_$876_$", + "typeString": "type(contract IExtendedResolver)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IExtendedResolver_$876_$", + "typeString": "type(contract IExtendedResolver)" + } + ], + "id": 1102, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3259:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3259:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IExtendedResolver_$876", + "typeString": "type(contract IExtendedResolver)" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3283:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "3259:35:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3244:50:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1109, + "name": "interfaceID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1095, + "src": "3334:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1107, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3310:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_OffchainResolver_$1163_$", + "typeString": "type(contract super OffchainResolver)" + } + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3316:17:6", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "3310:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) pure returns (bool)" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3310:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3244:102:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1100, + "id": 1112, + "nodeType": "Return", + "src": "3225:121:6" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 1114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "3127:17:6", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1097, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3191:8:6" + }, + "parameters": { + "id": 1096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1095, + "mutability": "mutable", + "name": "interfaceID", + "nameLocation": "3161:11:6", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "3154:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1094, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3154:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "3144:34:6" + }, + "returnParameters": { + "id": 1100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "3209:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1098, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3209:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3208:6:6" + }, + "scope": 1163, + "src": "3118:235:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1126, + "nodeType": "Block", + "src": "3468:27:6", + "statements": [ + { + "expression": { + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1122, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "3478:3:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1123, + "name": "_url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "3484:4:6", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + "src": "3478:10:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1125, + "nodeType": "ExpressionStatement", + "src": "3478:10:6" + } + ] + }, + "documentation": { + "id": 1115, + "nodeType": "StructuredDocumentation", + "src": "3359:47:6", + "text": " Sets the URL of the gateway." + }, + "functionSelector": "77343408", + "id": 1127, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1120, + "kind": "modifierInvocation", + "modifierName": { + "id": 1119, + "name": "onlyOwner", + "nameLocations": [ + "3458:9:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "3458:9:6" + }, + "nodeType": "ModifierInvocation", + "src": "3458:9:6" + } + ], + "name": "setURL", + "nameLocation": "3420:6:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "_url", + "nameLocation": "3443:4:6", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "3427:20:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3427:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3426:22:6" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [], + "src": "3468:0:6" + }, + "scope": 1163, + "src": "3411:84:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1161, + "nodeType": "Block", + "src": "3625:146:6", + "statements": [ + { + "body": { + "id": 1155, + "nodeType": "Block", + "src": "3678:52:6", + "statements": [ + { + "expression": { + "id": 1153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1147, + "name": "signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "3692:7:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1151, + "indexExpression": { + "baseExpression": { + "id": 1148, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "3700:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1150, + "indexExpression": { + "id": 1149, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "3709:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3700:11:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3692:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 1152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3715:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3692:27:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1154, + "nodeType": "ExpressionStatement", + "src": "3692:27:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1140, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "3652:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1141, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "3656:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3665:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3656:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3652:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1156, + "initializationExpression": { + "assignments": [ + 1137 + ], + "declarations": [ + { + "constant": false, + "id": 1137, + "mutability": "mutable", + "name": "i", + "nameLocation": "3645:1:6", + "nodeType": "VariableDeclaration", + "scope": 1156, + "src": "3640:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1136, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3640:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1139, + "initialValue": { + "hexValue": "30", + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3649:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3640:10:6" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3673:3:6", + "subExpression": { + "id": 1144, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "3673:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1146, + "nodeType": "ExpressionStatement", + "src": "3673:3:6" + }, + "nodeType": "ForStatement", + "src": "3635:95:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1158, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "3755:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 1157, + "name": "NewSigners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "3744:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address[] memory)" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3744:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1160, + "nodeType": "EmitStatement", + "src": "3739:25:6" + } + ] + }, + "documentation": { + "id": 1128, + "nodeType": "StructuredDocumentation", + "src": "3501:51:6", + "text": " Sets the Signers of the gateway." + }, + "functionSelector": "a3772662", + "id": 1162, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1134, + "kind": "modifierInvocation", + "modifierName": { + "id": 1133, + "name": "onlyOwner", + "nameLocations": [ + "3615:9:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "3615:9:6" + }, + "nodeType": "ModifierInvocation", + "src": "3615:9:6" + } + ], + "name": "setSigners", + "nameLocation": "3566:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "_signers", + "nameLocation": "3596:8:6", + "nodeType": "VariableDeclaration", + "scope": 1162, + "src": "3577:27:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3577:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1130, + "nodeType": "ArrayTypeName", + "src": "3577:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3576:29:6" + }, + "returnParameters": { + "id": 1135, + "nodeType": "ParameterList", + "parameters": [], + "src": "3625:0:6" + }, + "scope": 1163, + "src": "3557:214:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1164, + "src": "633:3140:6", + "usedErrors": [ + 13, + 18, + 249, + 252, + 527, + 532, + 537, + 930 + ], + "usedEvents": [ + 24, + 257, + 917 + ] + } + ], + "src": "32:3742:6" + }, + "id": 6 + }, + "contracts/OffchainResolverFactory.sol": { + "ast": { + "absolutePath": "contracts/OffchainResolverFactory.sol", + "exportedSymbols": { + "Clones": [ + 232 + ], + "Context": [ + 516 + ], + "ECDSA": [ + 864 + ], + "IExtendedResolver": [ + 876 + ], + "IResolverService": [ + 897 + ], + "ISupportsInterface": [ + 1345 + ], + "Initializable": [ + 486 + ], + "OffchainResolver": [ + 1163 + ], + "OffchainResolverFactory": [ + 1231 + ], + "Ownable": [ + 147 + ], + "SignatureVerifier": [ + 1335 + ], + "SupportsInterface": [ + 1364 + ] + }, + "id": 1232, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1165, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "32:23:7" + }, + { + "absolutePath": "contracts/OffchainResolver.sol", + "file": "./OffchainResolver.sol", + "id": 1166, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1232, + "sourceUnit": 1164, + "src": "57:32:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/Clones.sol", + "file": "@openzeppelin/contracts/proxy/Clones.sol", + "id": 1167, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1232, + "sourceUnit": 233, + "src": "90:50:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 1168, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1232, + "sourceUnit": 148, + "src": "141:52:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1169, + "name": "Ownable", + "nameLocations": [ + "231:7:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "231:7:7" + }, + "id": 1170, + "nodeType": "InheritanceSpecifier", + "src": "231:7:7" + } + ], + "canonicalName": "OffchainResolverFactory", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1231, + "linearizedBaseContracts": [ + 1231, + 147, + 516 + ], + "name": "OffchainResolverFactory", + "nameLocation": "204:23:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7c3fab9d", + "id": 1172, + "mutability": "mutable", + "name": "offchainResolver", + "nameLocation": "261:16:7", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "246:31:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "4500126d94fb0575f6f62aeaa53ad6d563ed80c940f50c37704c63456432543a", + "id": 1176, + "name": "OffchainResolverCreated", + "nameLocation": "290:23:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1174, + "indexed": false, + "mutability": "mutable", + "name": "newOffchainResolverAddress", + "nameLocation": "322:26:7", + "nodeType": "VariableDeclaration", + "scope": 1176, + "src": "314:34:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "314:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "313:36:7" + }, + "src": "284:66:7" + }, + { + "body": { + "id": 1189, + "nodeType": "Block", + "src": "415:53:7", + "statements": [ + { + "expression": { + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1185, + "name": "offchainResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1172, + "src": "425:16:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1186, + "name": "_offchainResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "444:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "425:36:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1188, + "nodeType": "ExpressionStatement", + "src": "425:36:7" + } + ] + }, + "id": 1190, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "expression": { + "id": 1181, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "403:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "407:6:7", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "403:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1183, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1180, + "name": "Ownable", + "nameLocations": [ + "395:7:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "395:7:7" + }, + "nodeType": "ModifierInvocation", + "src": "395:19:7" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1178, + "mutability": "mutable", + "name": "_offchainResolver", + "nameLocation": "376:17:7", + "nodeType": "VariableDeclaration", + "scope": 1190, + "src": "368:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1177, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "367:27:7" + }, + "returnParameters": { + "id": 1184, + "nodeType": "ParameterList", + "parameters": [], + "src": "415:0:7" + }, + "scope": 1231, + "src": "356:112:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1201, + "nodeType": "Block", + "src": "561:60:7", + "statements": [ + { + "expression": { + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1197, + "name": "offchainResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1172, + "src": "571:16:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1198, + "name": "_offchainResolverAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "590:24:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "571:43:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1200, + "nodeType": "ExpressionStatement", + "src": "571:43:7" + } + ] + }, + "functionSelector": "1d8f29e8", + "id": 1202, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1195, + "kind": "modifierInvocation", + "modifierName": { + "id": 1194, + "name": "onlyOwner", + "nameLocations": [ + "551:9:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "551:9:7" + }, + "nodeType": "ModifierInvocation", + "src": "551:9:7" + } + ], + "name": "setOffchainResolverAddress", + "nameLocation": "483:26:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1192, + "mutability": "mutable", + "name": "_offchainResolverAddress", + "nameLocation": "518:24:7", + "nodeType": "VariableDeclaration", + "scope": 1202, + "src": "510:32:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "510:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "509:34:7" + }, + "returnParameters": { + "id": 1196, + "nodeType": "ParameterList", + "parameters": [], + "src": "561:0:7" + }, + "scope": 1231, + "src": "474:147:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1229, + "nodeType": "Block", + "src": "713:168:7", + "statements": [ + { + "assignments": [ + 1211 + ], + "declarations": [ + { + "constant": false, + "id": 1211, + "mutability": "mutable", + "name": "clone", + "nameLocation": "731:5:7", + "nodeType": "VariableDeclaration", + "scope": 1229, + "src": "723:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "723:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1216, + "initialValue": { + "arguments": [ + { + "id": 1214, + "name": "offchainResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1172, + "src": "752:16:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1212, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "739:6:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$232_$", + "typeString": "type(library Clones)" + } + }, + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "746:5:7", + "memberName": "clone", + "nodeType": "MemberAccess", + "referencedDeclaration": 174, + "src": "739:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_address_$", + "typeString": "function (address) returns (address)" + } + }, + "id": 1215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "739:30:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "723:46:7" + }, + { + "expression": { + "arguments": [ + { + "id": 1221, + "name": "_url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "814:4:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 1222, + "name": "_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "820:8:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1218, + "name": "clone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "796:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1217, + "name": "OffchainResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1163, + "src": "779:16:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OffchainResolver_$1163_$", + "typeString": "type(contract OffchainResolver)" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "779:23:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_OffchainResolver_$1163", + "typeString": "contract OffchainResolver" + } + }, + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "803:10:7", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 981, + "src": "779:34:7", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (string memory,address[] memory) external" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "779:50:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1224, + "nodeType": "ExpressionStatement", + "src": "779:50:7" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1226, + "name": "clone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "868:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1225, + "name": "OffchainResolverCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1176, + "src": "844:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "844:30:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1228, + "nodeType": "EmitStatement", + "src": "839:35:7" + } + ] + }, + "functionSelector": "f00b6b7a", + "id": 1230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createOffchainResolver", + "nameLocation": "636:22:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "_url", + "nameLocation": "673:4:7", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "659:18:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1203, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "659:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1207, + "mutability": "mutable", + "name": "_signers", + "nameLocation": "696:8:7", + "nodeType": "VariableDeclaration", + "scope": 1230, + "src": "679:25:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "679:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1206, + "nodeType": "ArrayTypeName", + "src": "679:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "658:47:7" + }, + "returnParameters": { + "id": 1209, + "nodeType": "ParameterList", + "parameters": [], + "src": "713:0:7" + }, + "scope": 1231, + "src": "627:254:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1232, + "src": "195:689:7", + "usedErrors": [ + 13, + 18, + 153 + ], + "usedEvents": [ + 24, + 1176 + ] + } + ], + "src": "32:853:7" + }, + "id": 7 + }, + "contracts/SignatureVerifier.sol": { + "ast": { + "absolutePath": "contracts/SignatureVerifier.sol", + "exportedSymbols": { + "ECDSA": [ + 864 + ], + "SignatureVerifier": [ + 1335 + ] + }, + "id": 1336, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1233, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "id": 1234, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1336, + "sourceUnit": 865, + "src": "58:62:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignatureVerifier", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 1335, + "linearizedBaseContracts": [ + 1335 + ], + "name": "SignatureVerifier", + "nameLocation": "130:17:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1263, + "nodeType": "Block", + "src": "602:278:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "1900", + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "696:9:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "typeString": "literal_string hex\"1900\"" + }, + "value": "\u0019\u0000" + }, + { + "id": 1252, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "727:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1253, + "name": "expires", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "755:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [ + { + "id": 1255, + "name": "request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "794:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1254, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "784:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "784:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 1258, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "834:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1257, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "824:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "824:17:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "typeString": "literal_string hex\"1900\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 1249, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "658:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "662:12:8", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "658:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "658:201:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1248, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "631:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "631:242:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1247, + "id": 1262, + "nodeType": "Return", + "src": "612:261:8" + } + ] + }, + "documentation": { + "id": 1235, + "nodeType": "StructuredDocumentation", + "src": "154:271:8", + "text": " @dev Generates a hash for signing/verifying.\n @param target: The address the signature is for.\n @param request: The original request that was sent.\n @param result: The `result` field of the response (not including the signature part)." + }, + "id": 1264, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "makeSignatureHash", + "nameLocation": "439:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "target", + "nameLocation": "474:6:8", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "466:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "466:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1239, + "mutability": "mutable", + "name": "expires", + "nameLocation": "497:7:8", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "490:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1238, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "490:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1241, + "mutability": "mutable", + "name": "request", + "nameLocation": "527:7:8", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "514:20:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1240, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "514:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1243, + "mutability": "mutable", + "name": "result", + "nameLocation": "557:6:8", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "544:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1242, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "544:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "456:113:8" + }, + "returnParameters": { + "id": 1247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1246, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1264, + "src": "593:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1245, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "593:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "592:9:8" + }, + "scope": 1335, + "src": "430:450:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1333, + "nodeType": "Block", + "src": "1491:563:8", + "statements": [ + { + "assignments": [ + 1277, + 1279, + 1281 + ], + "declarations": [ + { + "constant": false, + "id": 1277, + "mutability": "mutable", + "name": "result", + "nameLocation": "1515:6:8", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "1502:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1276, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1502:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1279, + "mutability": "mutable", + "name": "expires", + "nameLocation": "1530:7:8", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "1523:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1278, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1523:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1281, + "mutability": "mutable", + "name": "sig", + "nameLocation": "1552:3:8", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "1539:16:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1280, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1539:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1293, + "initialValue": { + "arguments": [ + { + "id": 1284, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "1583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1606:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1285, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1606:5:8", + "typeDescriptions": {} + } + }, + { + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1613:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 1287, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1613:6:8", + "typeDescriptions": {} + } + }, + { + "id": 1290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1621:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1289, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1621:5:8", + "typeDescriptions": {} + } + } + ], + "id": 1291, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1605:22:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint64_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(bytes storage pointer),type(uint64),type(bytes storage pointer))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint64_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(bytes storage pointer),type(uint64),type(bytes storage pointer))" + } + ], + "expression": { + "id": 1282, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1559:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1563:6:8", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "1559:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1559:78:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bytes memory,uint64,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1501:136:8" + }, + { + "assignments": [ + 1295, + 1297 + ], + "declarations": [ + { + "constant": false, + "id": 1295, + "mutability": "mutable", + "name": "extraData", + "nameLocation": "1661:9:8", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "1648:22:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1294, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1648:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1297, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1680:6:8", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "1672:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1296, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1672:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1307, + "initialValue": { + "arguments": [ + { + "id": 1300, + "name": "request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "1714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "components": [ + { + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1736:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1301, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1736:5:8", + "typeDescriptions": {} + } + }, + { + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1743:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1743:7:8", + "typeDescriptions": {} + } + } + ], + "id": 1305, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1735:16:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_address_$_$", + "typeString": "tuple(type(bytes storage pointer),type(address))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_address_$_$", + "typeString": "tuple(type(bytes storage pointer),type(address))" + } + ], + "expression": { + "id": 1298, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1690:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1694:6:8", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "1690:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1690:71:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes_memory_ptr_$_t_address_payable_$", + "typeString": "tuple(bytes memory,address payable)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1647:114:8" + }, + { + "assignments": [ + 1309 + ], + "declarations": [ + { + "constant": false, + "id": 1309, + "mutability": "mutable", + "name": "signer", + "nameLocation": "1779:6:8", + "nodeType": "VariableDeclaration", + "scope": 1333, + "src": "1771:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1308, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1771:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1320, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 1313, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "1833:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1314, + "name": "expires", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "1841:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 1315, + "name": "extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1295, + "src": "1850:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1316, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "1861:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1312, + "name": "makeSignatureHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1264, + "src": "1815:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address,uint64,bytes memory,bytes memory) pure returns (bytes32)" + } + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1815:53:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1318, + "name": "sig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1281, + "src": "1882:3:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1310, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 864, + "src": "1788:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ECDSA_$864_$", + "typeString": "type(library ECDSA)" + } + }, + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1794:7:8", + "memberName": "recover", + "nodeType": "MemberAccess", + "referencedDeclaration": 620, + "src": "1788:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1788:107:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1771:124:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1322, + "name": "expires", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "1926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 1323, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1937:5:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1943:9:8", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1937:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1926:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5369676e617475726556657269666965723a205369676e61747572652065787069726564", + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1966:38:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a", + "typeString": "literal_string \"SignatureVerifier: Signature expired\"" + }, + "value": "SignatureVerifier: Signature expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a", + "typeString": "literal_string \"SignatureVerifier: Signature expired\"" + } + ], + "id": 1321, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1905:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1905:109:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1328, + "nodeType": "ExpressionStatement", + "src": "1905:109:8" + }, + { + "expression": { + "components": [ + { + "id": 1329, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1309, + "src": "2032:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1330, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1277, + "src": "2040:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 1331, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2031:16:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_ptr_$", + "typeString": "tuple(address,bytes memory)" + } + }, + "functionReturnParameters": 1275, + "id": 1332, + "nodeType": "Return", + "src": "2024:23:8" + } + ] + }, + "documentation": { + "id": 1265, + "nodeType": "StructuredDocumentation", + "src": "886:467:8", + "text": " @dev Verifies a signed message returned from a callback.\n @param request: The original request that was sent.\n @param response: An ABI encoded tuple of `(bytes result, uint64 expires, bytes sig)`, where `result` is the data to return\n to the caller, and `sig` is the (r,s,v) encoded message signature.\n @return signer: The address that signed this message.\n @return result: The `result` decoded from `response`." + }, + "id": 1334, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verify", + "nameLocation": "1367:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "request", + "nameLocation": "1398:7:8", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "1383:22:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1266, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1383:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1269, + "mutability": "mutable", + "name": "response", + "nameLocation": "1430:8:8", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "1415:23:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1268, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1415:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1373:71:8" + }, + "returnParameters": { + "id": 1275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1272, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "1468:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1271, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1468:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "1477:12:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1273, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1477:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1467:23:8" + }, + "scope": 1335, + "src": "1358:696:8", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1336, + "src": "122:1934:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:2024:8" + }, + "id": 8 + }, + "contracts/SupportsInterface.sol": { + "ast": { + "absolutePath": "contracts/SupportsInterface.sol", + "exportedSymbols": { + "ISupportsInterface": [ + 1345 + ], + "SupportsInterface": [ + 1364 + ] + }, + "id": 1365, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1337, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "32:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ISupportsInterface", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1345, + "linearizedBaseContracts": [ + 1345 + ], + "name": "ISupportsInterface", + "nameLocation": "67:18:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "01ffc9a7", + "id": 1344, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "101:17:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1339, + "mutability": "mutable", + "name": "interfaceID", + "nameLocation": "126:11:9", + "nodeType": "VariableDeclaration", + "scope": 1344, + "src": "119:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1338, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "119:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "118:20:9" + }, + "returnParameters": { + "id": 1343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1342, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1344, + "src": "162:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1341, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "162:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "161:6:9" + }, + "scope": 1345, + "src": "92:76:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1365, + "src": "57:113:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1346, + "name": "ISupportsInterface", + "nameLocations": [ + "211:18:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1345, + "src": "211:18:9" + }, + "id": 1347, + "nodeType": "InheritanceSpecifier", + "src": "211:18:9" + } + ], + "canonicalName": "SupportsInterface", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1364, + "linearizedBaseContracts": [ + 1364, + 1345 + ], + "name": "SupportsInterface", + "nameLocation": "190:17:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1344 + ], + "body": { + "id": 1362, + "nodeType": "Block", + "src": "341:75:9", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1355, + "name": "interfaceID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "358:11:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1357, + "name": "ISupportsInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1345, + "src": "378:18:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISupportsInterface_$1345_$", + "typeString": "type(contract ISupportsInterface)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_ISupportsInterface_$1345_$", + "typeString": "type(contract ISupportsInterface)" + } + ], + "id": 1356, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "373:4:9", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "373:24:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_ISupportsInterface_$1345", + "typeString": "type(contract ISupportsInterface)" + } + }, + "id": 1359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "398:11:9", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "373:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "358:51:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1354, + "id": 1361, + "nodeType": "Return", + "src": "351:58:9" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 1363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "245:17:9", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1351, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "317:8:9" + }, + "parameters": { + "id": 1350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1349, + "mutability": "mutable", + "name": "interfaceID", + "nameLocation": "279:11:9", + "nodeType": "VariableDeclaration", + "scope": 1363, + "src": "272:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1348, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "272:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "262:34:9" + }, + "returnParameters": { + "id": 1354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1353, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1363, + "src": "335:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1352, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "335:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "334:6:9" + }, + "scope": 1364, + "src": "236:180:9", + "stateMutability": "pure", + "virtual": true, + "visibility": "public" + } + ], + "scope": 1365, + "src": "172:246:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:387:9" + }, + "id": 9 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/proxy/Clones.sol": { + "Clones": { + "abi": [ + { + "inputs": [], + "name": "ERC1167FailedCreateClone", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a7b5209ae0a2a81ddb3b71fde6e240eb56be437e63d9c01ad54922dfc07d36b64736f6c63430008180033", + "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 SWAP11 PUSH28 0x5209AE0A2A81DDB3B71FDE6E240EB56BE437E63D9C01AD54922DFC07 0xD3 PUSH12 0x64736F6C6343000818003300 ", + "sourceMap": "726:3433:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a7b5209ae0a2a81ddb3b71fde6e240eb56be437e63d9c01ad54922dfc07d36b64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 PUSH28 0x5209AE0A2A81DDB3B71FDE6E240EB56BE437E63D9C01AD54922DFC07 0xD3 PUSH12 0x64736F6C6343000818003300 ", + "sourceMap": "726:3433:1:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for deploying minimal proxy contracts, also known as \\\"clones\\\". > To simply and cheaply clone contract functionality in an immutable way, this standard specifies > a minimal bytecode implementation that delegates all calls to a known, fixed address. The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2` (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the deterministic method.\",\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Clones.sol\":\"Clones\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/proxy/utils/Initializable.sol": { + "Initializable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"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.24+commit.e11b9ed9\"},\"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/cryptography/ECDSA.sol": { + "ECDSA": { + "abi": [ + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0f0af1e89f3ddbdff57fa81e414c48e503c1b1d880410ba3858747441326c1664736f6c63430008180033", + "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 LOG0 CREATE 0xAF 0x1E DUP10 RETURN 0xDD 0xBD SELFDESTRUCT JUMPI STATICCALL DUP2 0xE4 EQ 0xC4 DUP15 POP EXTCODECOPY SHL SAR DUP9 DIV LT 0xBA CODESIZE PC PUSH21 0x7441326C1664736F6C634300081800330000000000 ", + "sourceMap": "344:7386:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0f0af1e89f3ddbdff57fa81e414c48e503c1b1d880410ba3858747441326c1664736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 CREATE 0xAF 0x1E DUP10 RETURN 0xDD 0xBD SELFDESTRUCT JUMPI STATICCALL DUP2 0xE4 EQ 0xC4 DUP15 POP EXTCODECOPY SHL SAR DUP9 DIV LT 0xBA CODESIZE PC PUSH21 0x7441326C1664736F6C634300081800330000000000 ", + "sourceMap": "344:7386:4:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}" + } + }, + "contracts/IExtendedResolver.sol": { + "IExtendedResolver": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "name", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "resolve", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "resolve(bytes,bytes)": "9061b923" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IExtendedResolver.sol\":\"IExtendedResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IExtendedResolver.sol\":{\"keccak256\":\"0x5d81521cfae7d9a4475d27533cd8ed0d3475d369eb0674fd90ffbdbdf292faa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d244d15588785044b54c453ab6dc51c616ab70cb8b9e687d3e54565bcae97760\",\"dweb:/ipfs/QmXz4ZZBTFogdkdTV1mcE3ywvL2agKVZHLNNeRHCKVruYM\"]}},\"version\":1}" + } + }, + "contracts/OffchainResolver.sol": { + "IResolverService": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "name", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "resolve", + "outputs": [ + { + "internalType": "bytes", + "name": "result", + "type": "bytes" + }, + { + "internalType": "uint64", + "name": "expires", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "sig", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "resolve(bytes,bytes)": "9061b923" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OffchainResolver.sol\":\"IResolverService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"contracts/IExtendedResolver.sol\":{\"keccak256\":\"0x5d81521cfae7d9a4475d27533cd8ed0d3475d369eb0674fd90ffbdbdf292faa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d244d15588785044b54c453ab6dc51c616ab70cb8b9e687d3e54565bcae97760\",\"dweb:/ipfs/QmXz4ZZBTFogdkdTV1mcE3ywvL2agKVZHLNNeRHCKVruYM\"]},\"contracts/OffchainResolver.sol\":{\"keccak256\":\"0x828073926b216d0e14c0488057aa738e53e40e2798f2c6f09e419d2a37bc8920\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9005a4425593cae6645cf7ee589f1668f684b3500945363e09a3e0e88bc1347e\",\"dweb:/ipfs/QmcLrKrkkxkjzejfUPAVkHmrSFgXpMKcKBWRfgdDvXXrsN\"]},\"contracts/SignatureVerifier.sol\":{\"keccak256\":\"0xbb4726d25480722076a692c4289c55188b46b0110cf32933076025c9855c4d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fdaaa906189879f3b57a9e7e87ba936b890b6b2bb593c66fedb98e2cb56f993\",\"dweb:/ipfs/QmbTwTG78dmCUuKtp8qPAdrGkysd1Tn9EFEQGRfJHdgZXB\"]},\"contracts/SupportsInterface.sol\":{\"keccak256\":\"0x98cdd1fdac1950916d1e2794f8ae550deda0f0a28d35d1da043273d017d5f8d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a47b737a30773359f056d16f4f4ffc4305490572546c086280eb929750d370f\",\"dweb:/ipfs/QmXsd1G8aXRAK1fmtj3yM9UUjkZR5kwctDDeZEA8Q5tHCQ\"]}},\"version\":1}" + }, + "OffchainResolver": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "string[]", + "name": "urls", + "type": "string[]" + }, + { + "internalType": "bytes", + "name": "callData", + "type": "bytes" + }, + { + "internalType": "bytes4", + "name": "callbackFunction", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "OffchainLookup", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "signers", + "type": "address[]" + } + ], + "name": "NewSigners", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_url", + "type": "string" + }, + { + "internalType": "address[]", + "name": "_signers", + "type": "address[]" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint64", + "name": "expires", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "request", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "result", + "type": "bytes" + } + ], + "name": "makeSignatureHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "name", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "resolve", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "resolveWithProof", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_signers", + "type": "address[]" + } + ], + "name": "setSigners", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_url", + "type": "string" + } + ], + "name": "setURL", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "signers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "url", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_941": { + "entryPoint": null, + "id": 941, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_disableInitializers_454": { + "entryPoint": 372, + "id": 454, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_485": { + "entryPoint": 638, + "id": 485, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transferOwnership_146": { + "entryPoint": 176, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 730, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint64_to_t_uint64_fromStack": { + "entryPoint": 796, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 747, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": 813, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 710, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 678, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint64": { + "entryPoint": 776, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1042:10", + "nodeType": "YulBlock", + "src": "0:1042:10", + "statements": [ + { + "body": { + "nativeSrc": "52:81:10", + "nodeType": "YulBlock", + "src": "52:81:10", + "statements": [ + { + "nativeSrc": "62:65:10", + "nodeType": "YulAssignment", + "src": "62:65:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "77:5:10", + "nodeType": "YulIdentifier", + "src": "77:5:10" + }, + { + "kind": "number", + "nativeSrc": "84:42:10", + "nodeType": "YulLiteral", + "src": "84:42:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "73:3:10", + "nodeType": "YulIdentifier", + "src": "73:3:10" + }, + "nativeSrc": "73:54:10", + "nodeType": "YulFunctionCall", + "src": "73:54:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "62:7:10", + "nodeType": "YulIdentifier", + "src": "62:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "7:126:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34:5:10", + "nodeType": "YulTypedName", + "src": "34:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "44:7:10", + "nodeType": "YulTypedName", + "src": "44:7:10", + "type": "" + } + ], + "src": "7:126:10" + }, + { + "body": { + "nativeSrc": "184:51:10", + "nodeType": "YulBlock", + "src": "184:51:10", + "statements": [ + { + "nativeSrc": "194:35:10", + "nodeType": "YulAssignment", + "src": "194:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "223:5:10", + "nodeType": "YulIdentifier", + "src": "223:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "205:17:10", + "nodeType": "YulIdentifier", + "src": "205:17:10" + }, + "nativeSrc": "205:24:10", + "nodeType": "YulFunctionCall", + "src": "205:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "194:7:10", + "nodeType": "YulIdentifier", + "src": "194:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "139:96:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "166:5:10", + "nodeType": "YulTypedName", + "src": "166:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "176:7:10", + "nodeType": "YulTypedName", + "src": "176:7:10", + "type": "" + } + ], + "src": "139:96:10" + }, + { + "body": { + "nativeSrc": "306:53:10", + "nodeType": "YulBlock", + "src": "306:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "323:3:10", + "nodeType": "YulIdentifier", + "src": "323:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "346:5:10", + "nodeType": "YulIdentifier", + "src": "346:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "328:17:10", + "nodeType": "YulIdentifier", + "src": "328:17:10" + }, + "nativeSrc": "328:24:10", + "nodeType": "YulFunctionCall", + "src": "328:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "316:6:10", + "nodeType": "YulIdentifier", + "src": "316:6:10" + }, + "nativeSrc": "316:37:10", + "nodeType": "YulFunctionCall", + "src": "316:37:10" + }, + "nativeSrc": "316:37:10", + "nodeType": "YulExpressionStatement", + "src": "316:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "241:118:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "294:5:10", + "nodeType": "YulTypedName", + "src": "294:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "301:3:10", + "nodeType": "YulTypedName", + "src": "301:3:10", + "type": "" + } + ], + "src": "241:118:10" + }, + { + "body": { + "nativeSrc": "463:124:10", + "nodeType": "YulBlock", + "src": "463:124:10", + "statements": [ + { + "nativeSrc": "473:26:10", + "nodeType": "YulAssignment", + "src": "473:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "485:9:10", + "nodeType": "YulIdentifier", + "src": "485:9:10" + }, + { + "kind": "number", + "nativeSrc": "496:2:10", + "nodeType": "YulLiteral", + "src": "496:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "481:3:10", + "nodeType": "YulIdentifier", + "src": "481:3:10" + }, + "nativeSrc": "481:18:10", + "nodeType": "YulFunctionCall", + "src": "481:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "473:4:10", + "nodeType": "YulIdentifier", + "src": "473:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "553:6:10", + "nodeType": "YulIdentifier", + "src": "553:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "566:9:10", + "nodeType": "YulIdentifier", + "src": "566:9:10" + }, + { + "kind": "number", + "nativeSrc": "577:1:10", + "nodeType": "YulLiteral", + "src": "577:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "562:3:10", + "nodeType": "YulIdentifier", + "src": "562:3:10" + }, + "nativeSrc": "562:17:10", + "nodeType": "YulFunctionCall", + "src": "562:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "509:43:10", + "nodeType": "YulIdentifier", + "src": "509:43:10" + }, + "nativeSrc": "509:71:10", + "nodeType": "YulFunctionCall", + "src": "509:71:10" + }, + "nativeSrc": "509:71:10", + "nodeType": "YulExpressionStatement", + "src": "509:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "365:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "435:9:10", + "nodeType": "YulTypedName", + "src": "435:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "447:6:10", + "nodeType": "YulTypedName", + "src": "447:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "458:4:10", + "nodeType": "YulTypedName", + "src": "458:4:10", + "type": "" + } + ], + "src": "365:222:10" + }, + { + "body": { + "nativeSrc": "637:57:10", + "nodeType": "YulBlock", + "src": "637:57:10", + "statements": [ + { + "nativeSrc": "647:41:10", + "nodeType": "YulAssignment", + "src": "647:41:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "662:5:10", + "nodeType": "YulIdentifier", + "src": "662:5:10" + }, + { + "kind": "number", + "nativeSrc": "669:18:10", + "nodeType": "YulLiteral", + "src": "669:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "658:3:10", + "nodeType": "YulIdentifier", + "src": "658:3:10" + }, + "nativeSrc": "658:30:10", + "nodeType": "YulFunctionCall", + "src": "658:30:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "647:7:10", + "nodeType": "YulIdentifier", + "src": "647:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint64", + "nativeSrc": "593:101:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "619:5:10", + "nodeType": "YulTypedName", + "src": "619:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "629:7:10", + "nodeType": "YulTypedName", + "src": "629:7:10", + "type": "" + } + ], + "src": "593:101:10" + }, + { + "body": { + "nativeSrc": "763:52:10", + "nodeType": "YulBlock", + "src": "763:52:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "780:3:10", + "nodeType": "YulIdentifier", + "src": "780:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "802:5:10", + "nodeType": "YulIdentifier", + "src": "802:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "785:16:10", + "nodeType": "YulIdentifier", + "src": "785:16:10" + }, + "nativeSrc": "785:23:10", + "nodeType": "YulFunctionCall", + "src": "785:23:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "773:6:10", + "nodeType": "YulIdentifier", + "src": "773:6:10" + }, + "nativeSrc": "773:36:10", + "nodeType": "YulFunctionCall", + "src": "773:36:10" + }, + "nativeSrc": "773:36:10", + "nodeType": "YulExpressionStatement", + "src": "773:36:10" + } + ] + }, + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nativeSrc": "700:115:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "751:5:10", + "nodeType": "YulTypedName", + "src": "751:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "758:3:10", + "nodeType": "YulTypedName", + "src": "758:3:10", + "type": "" + } + ], + "src": "700:115:10" + }, + { + "body": { + "nativeSrc": "917:122:10", + "nodeType": "YulBlock", + "src": "917:122:10", + "statements": [ + { + "nativeSrc": "927:26:10", + "nodeType": "YulAssignment", + "src": "927:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "939:9:10", + "nodeType": "YulIdentifier", + "src": "939:9:10" + }, + { + "kind": "number", + "nativeSrc": "950:2:10", + "nodeType": "YulLiteral", + "src": "950:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "935:3:10", + "nodeType": "YulIdentifier", + "src": "935:3:10" + }, + "nativeSrc": "935:18:10", + "nodeType": "YulFunctionCall", + "src": "935:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "927:4:10", + "nodeType": "YulIdentifier", + "src": "927:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1005:6:10", + "nodeType": "YulIdentifier", + "src": "1005:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1018:9:10", + "nodeType": "YulIdentifier", + "src": "1018:9:10" + }, + { + "kind": "number", + "nativeSrc": "1029:1:10", + "nodeType": "YulLiteral", + "src": "1029:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1014:3:10", + "nodeType": "YulIdentifier", + "src": "1014:3:10" + }, + "nativeSrc": "1014:17:10", + "nodeType": "YulFunctionCall", + "src": "1014:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nativeSrc": "963:41:10", + "nodeType": "YulIdentifier", + "src": "963:41:10" + }, + "nativeSrc": "963:69:10", + "nodeType": "YulFunctionCall", + "src": "963:69:10" + }, + "nativeSrc": "963:69:10", + "nodeType": "YulExpressionStatement", + "src": "963:69:10" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "821:218:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "889:9:10", + "nodeType": "YulTypedName", + "src": "889:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "901:6:10", + "nodeType": "YulTypedName", + "src": "901:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "912:4:10", + "nodeType": "YulTypedName", + "src": "912:4:10", + "type": "" + } + ], + "src": "821:218:10" + } + ] + }, + "contents": "{\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 abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 10, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5033600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000885760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200007f9190620002eb565b60405180910390fd5b6200009981620000b060201b60201c565b50620000aa6200017460201b60201c565b6200034a565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000620001866200027e60201b60201c565b90508060000160089054906101000a900460ff1615620001d2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146200027b5767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516200027291906200032d565b60405180910390a15b50565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002d382620002a6565b9050919050565b620002e581620002c6565b82525050565b6000602082019050620003026000830184620002da565b92915050565b600067ffffffffffffffff82169050919050565b620003278162000308565b82525050565b60006020820190506200034460008301846200031c565b92915050565b612581806200035a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018d5780639061b923146101ab578063a3772662146101db578063a644cbdc146101f7578063f2fde38b14610213578063f4d4d2f81461022f576100b4565b806301ffc9a7146100b95780631dcfea09146100e95780635600f04f14610119578063715018a614610137578063736c0d5b146101415780637734340814610171575b600080fd5b6100d360048036038101906100ce919061107b565b61025f565b6040516100e091906110c3565b60405180910390f35b61010360048036038101906100fe91906112c2565b6102d9565b604051610110919061137a565b60405180910390f35b6101216102f1565b60405161012e9190611414565b60405180910390f35b61013f61037f565b005b61015b60048036038101906101569190611436565b610393565b60405161016891906110c3565b60405180910390f35b61018b600480360381019061018691906114c3565b6103b3565b005b6101956103d1565b6040516101a2919061151f565b60405180910390f35b6101c560048036038101906101c09190611590565b6103fa565b6040516101d29190611666565b60405180910390f35b6101f560048036038101906101f091906116de565b6105e6565b005b610211600480360381019061020c919061188f565b6106c6565b005b61022d60048036038101906102289190611436565b610920565b005b61024960048036038101906102449190611590565b6109a6565b6040516102569190611666565b60405180910390f35b60007f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d257506102d182610a54565b5b9050919050565b60006102e785858585610abe565b9050949350505050565b600180546102fe90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90611936565b80156103775780601f1061034c57610100808354040283529160200191610377565b820191906000526020600020905b81548152906001019060200180831161035a57829003601f168201915b505050505081565b610387610b05565b6103916000610b8c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6103bb610b05565b8181600191826103cc929190611b28565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000639061b92360e01b8686868660405160240161041d9493929190611c25565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000600167ffffffffffffffff81111561049957610498611197565b5b6040519080825280602002602001820160405280156104cc57816020015b60608152602001906001900390816104b75790505b509050600180546104dc90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611936565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b50505050508160008151811061056e5761056d611c60565b5b602002602001018190525030818363f4d4d2f860e01b8530604051602001610597929190611c8f565b6040516020818303038152906040526040517f556f18300000000000000000000000000000000000000000000000000000000081526004016105dd959493929190611dda565b60405180910390fd5b6105ee610b05565b60005b828290508110156106885760016002600085858581811061061557610614611c60565b5b905060200201602081019061062a9190611436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506105f1565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d782826040516106ba929190611f05565b60405180910390a15050565b60006106d0610c50565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff1614801561071e5750825b9050600060018367ffffffffffffffff16148015610753575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610761575080155b15610798576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107e85760018560000160086101000a81548160ff0219169083151502179055505b86600190816107f79190611f29565b5060005b86518110156108835760016002600089848151811061081d5761081c611c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107fb565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7866040516108b39190612081565b60405180910390a183156109175760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161090e91906120de565b60405180910390a15b50505050505050565b610928610b05565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361099a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610991919061151f565b60405180910390fd5b6109a381610b8c565b50565b60606000806109b785858989610c78565b91509150600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e9061216b565b60405180910390fd5b8092505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000848484805190602001208480519060200120604051602001610ae59493929190612281565b604051602081830303815290604052805190602001209050949350505050565b610b0d610d27565b73ffffffffffffffffffffffffffffffffffffffff16610b2b6103d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a57610b4e610d27565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610b81919061151f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6000606060008060008686810190610c9091906122da565b9250925092506000808a8a810190610ca891906123a3565b915091506000610cc3610cbd8387868a610abe565b85610d2f565b9050428567ffffffffffffffff161015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612471565b60405180910390fd5b80869750975050505050505094509492505050565b600033905090565b600080600080610d3f8686610d5b565b925092509250610d4f8282610db7565b82935050505092915050565b60008060006041845103610da05760008060006020870151925060408701519150606087015160001a9050610d9288828585610f1b565b955095509550505050610db0565b60006002855160001b9250925092505b9250925092565b60006003811115610dcb57610dca612491565b5b826003811115610dde57610ddd612491565b5b0315610f175760016003811115610df857610df7612491565b5b826003811115610e0b57610e0a612491565b5b03610e42576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115610e5657610e55612491565b5b826003811115610e6957610e68612491565b5b03610eae578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401610ea591906124cf565b60405180910390fd5b600380811115610ec157610ec0612491565b5b826003811115610ed457610ed3612491565b5b03610f1657806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401610f0d919061137a565b60405180910390fd5b5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115610f5b576000600385925092509250611005565b600060018888888860405160008152602001604052604051610f809493929190612506565b6020604051602081039080840390855afa158015610fa2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff657600060016000801b93509350935050611005565b8060008060001b935093509350505b9450945094915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61105881611023565b811461106357600080fd5b50565b6000813590506110758161104f565b92915050565b60006020828403121561109157611090611019565b5b600061109f84828501611066565b91505092915050565b60008115159050919050565b6110bd816110a8565b82525050565b60006020820190506110d860008301846110b4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611109826110de565b9050919050565b611119816110fe565b811461112457600080fd5b50565b60008135905061113681611110565b92915050565b600067ffffffffffffffff82169050919050565b6111598161113c565b811461116457600080fd5b50565b60008135905061117681611150565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6111cf82611186565b810181811067ffffffffffffffff821117156111ee576111ed611197565b5b80604052505050565b600061120161100f565b905061120d82826111c6565b919050565b600067ffffffffffffffff82111561122d5761122c611197565b5b61123682611186565b9050602081019050919050565b82818337600083830152505050565b600061126561126084611212565b6111f7565b90508281526020810184848401111561128157611280611181565b5b61128c848285611243565b509392505050565b600082601f8301126112a9576112a861117c565b5b81356112b9848260208601611252565b91505092915050565b600080600080608085870312156112dc576112db611019565b5b60006112ea87828801611127565b94505060206112fb87828801611167565b935050604085013567ffffffffffffffff81111561131c5761131b61101e565b5b61132887828801611294565b925050606085013567ffffffffffffffff8111156113495761134861101e565b5b61135587828801611294565b91505092959194509250565b6000819050919050565b61137481611361565b82525050565b600060208201905061138f600083018461136b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113cf5780820151818401526020810190506113b4565b60008484015250505050565b60006113e682611395565b6113f081856113a0565b93506114008185602086016113b1565b61140981611186565b840191505092915050565b6000602082019050818103600083015261142e81846113db565b905092915050565b60006020828403121561144c5761144b611019565b5b600061145a84828501611127565b91505092915050565b600080fd5b600080fd5b60008083601f8401126114835761148261117c565b5b8235905067ffffffffffffffff8111156114a05761149f611463565b5b6020830191508360018202830111156114bc576114bb611468565b5b9250929050565b600080602083850312156114da576114d9611019565b5b600083013567ffffffffffffffff8111156114f8576114f761101e565b5b6115048582860161146d565b92509250509250929050565b611519816110fe565b82525050565b60006020820190506115346000830184611510565b92915050565b60008083601f8401126115505761154f61117c565b5b8235905067ffffffffffffffff81111561156d5761156c611463565b5b60208301915083600182028301111561158957611588611468565b5b9250929050565b600080600080604085870312156115aa576115a9611019565b5b600085013567ffffffffffffffff8111156115c8576115c761101e565b5b6115d48782880161153a565b9450945050602085013567ffffffffffffffff8111156115f7576115f661101e565b5b6116038782880161153a565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b600061163882611611565b611642818561161c565b93506116528185602086016113b1565b61165b81611186565b840191505092915050565b60006020820190508181036000830152611680818461162d565b905092915050565b60008083601f84011261169e5761169d61117c565b5b8235905067ffffffffffffffff8111156116bb576116ba611463565b5b6020830191508360208202830111156116d7576116d6611468565b5b9250929050565b600080602083850312156116f5576116f4611019565b5b600083013567ffffffffffffffff8111156117135761171261101e565b5b61171f85828601611688565b92509250509250929050565b600067ffffffffffffffff82111561174657611745611197565b5b61174f82611186565b9050602081019050919050565b600061176f61176a8461172b565b6111f7565b90508281526020810184848401111561178b5761178a611181565b5b611796848285611243565b509392505050565b600082601f8301126117b3576117b261117c565b5b81356117c384826020860161175c565b91505092915050565b600067ffffffffffffffff8211156117e7576117e6611197565b5b602082029050602081019050919050565b600061180b611806846117cc565b6111f7565b9050808382526020820190506020840283018581111561182e5761182d611468565b5b835b8181101561185757806118438882611127565b845260208401935050602081019050611830565b5050509392505050565b600082601f8301126118765761187561117c565b5b81356118868482602086016117f8565b91505092915050565b600080604083850312156118a6576118a5611019565b5b600083013567ffffffffffffffff8111156118c4576118c361101e565b5b6118d08582860161179e565b925050602083013567ffffffffffffffff8111156118f1576118f061101e565b5b6118fd85828601611861565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061194e57607f821691505b60208210810361196157611960611907565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611997565b6119de8683611997565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000611a25611a20611a1b846119f6565b611a00565b6119f6565b9050919050565b6000819050919050565b611a3f83611a0a565b611a53611a4b82611a2c565b8484546119a4565b825550505050565b600090565b611a68611a5b565b611a73818484611a36565b505050565b5b81811015611a9757611a8c600082611a60565b600181019050611a79565b5050565b601f821115611adc57611aad81611972565b611ab684611987565b81016020851015611ac5578190505b611ad9611ad185611987565b830182611a78565b50505b505050565b600082821c905092915050565b6000611aff60001984600802611ae1565b1980831691505092915050565b6000611b188383611aee565b9150826002028217905092915050565b611b328383611967565b67ffffffffffffffff811115611b4b57611b4a611197565b5b611b558254611936565b611b60828285611a9b565b6000601f831160018114611b8f5760008415611b7d578287013590505b611b878582611b0c565b865550611bef565b601f198416611b9d86611972565b60005b82811015611bc557848901358255600182019150602085019450602081019050611ba0565b86831015611be25784890135611bde601f891682611aee565b8355505b6001600288020188555050505b50505050505050565b6000611c04838561161c565b9350611c11838584611243565b611c1a83611186565b840190509392505050565b60006040820190508181036000830152611c40818688611bf8565b90508181036020830152611c55818486611bf8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040820190508181036000830152611ca9818561162d565b9050611cb86020830184611510565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000611d0782611395565b611d118185611ceb565b9350611d218185602086016113b1565b611d2a81611186565b840191505092915050565b6000611d418383611cfc565b905092915050565b6000602082019050919050565b6000611d6182611cbf565b611d6b8185611cca565b935083602082028501611d7d85611cdb565b8060005b85811015611db95784840389528151611d9a8582611d35565b9450611da583611d49565b925060208a01995050600181019050611d81565b50829750879550505050505092915050565b611dd481611023565b82525050565b600060a082019050611def6000830188611510565b8181036020830152611e018187611d56565b90508181036040830152611e15818661162d565b9050611e246060830185611dcb565b8181036080830152611e36818461162d565b90509695505050505050565b600082825260208201905092915050565b6000819050919050565b611e66816110fe565b82525050565b6000611e788383611e5d565b60208301905092915050565b6000611e936020840184611127565b905092915050565b6000602082019050919050565b6000611eb48385611e42565b9350611ebf82611e53565b8060005b85811015611ef857611ed58284611e84565b611edf8882611e6c565b9750611eea83611e9b565b925050600181019050611ec3565b5085925050509392505050565b60006020820190508181036000830152611f20818486611ea8565b90509392505050565b611f3282611395565b67ffffffffffffffff811115611f4b57611f4a611197565b5b611f558254611936565b611f60828285611a9b565b600060209050601f831160018114611f935760008415611f81578287015190505b611f8b8582611b0c565b865550611ff3565b601f198416611fa186611972565b60005b82811015611fc957848901518255600182019150602085019450602081019050611fa4565b86831015611fe65784890151611fe2601f891682611aee565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061202e82611ffb565b6120388185611e42565b935061204383612006565b8060005b8381101561207457815161205b8882611e6c565b975061206683612016565b925050600181019050612047565b5085935050505092915050565b6000602082019050818103600083015261209b8184612023565b905092915050565b6000819050919050565b60006120c86120c36120be846120a3565b611a00565b61113c565b9050919050565b6120d8816120ad565b82525050565b60006020820190506120f360008301846120cf565b92915050565b7f5369676e617475726556657269666965723a20496e76616c696420736967617460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b60006121556023836113a0565b9150612160826120f9565b604082019050919050565b6000602082019050818103600083015261218481612148565b9050919050565b600081905092915050565b7f1900000000000000000000000000000000000000000000000000000000000000600082015250565b60006121cc60028361218b565b91506121d782612196565b600282019050919050565b60008160601b9050919050565b60006121fa826121e2565b9050919050565b600061220c826121ef565b9050919050565b61222461221f826110fe565b612201565b82525050565b60008160c01b9050919050565b60006122428261222a565b9050919050565b61225a6122558261113c565b612237565b82525050565b6000819050919050565b61227b61227682611361565b612260565b82525050565b600061228c826121bf565b91506122988287612213565b6014820191506122a88286612249565b6008820191506122b8828561226a565b6020820191506122c8828461226a565b60208201915081905095945050505050565b6000806000606084860312156122f3576122f2611019565b5b600084013567ffffffffffffffff8111156123115761231061101e565b5b61231d86828701611294565b935050602061232e86828701611167565b925050604084013567ffffffffffffffff81111561234f5761234e61101e565b5b61235b86828701611294565b9150509250925092565b6000612370826110de565b9050919050565b61238081612365565b811461238b57600080fd5b50565b60008135905061239d81612377565b92915050565b600080604083850312156123ba576123b9611019565b5b600083013567ffffffffffffffff8111156123d8576123d761101e565b5b6123e485828601611294565b92505060206123f58582860161238e565b9150509250929050565b7f5369676e617475726556657269666965723a205369676e61747572652065787060008201527f6972656400000000000000000000000000000000000000000000000000000000602082015250565b600061245b6024836113a0565b9150612466826123ff565b604082019050919050565b6000602082019050818103600083015261248a8161244e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6124c9816119f6565b82525050565b60006020820190506124e460008301846124c0565b92915050565b600060ff82169050919050565b612500816124ea565b82525050565b600060808201905061251b600083018761136b565b61252860208301866124f7565b612535604083018561136b565b612542606083018461136b565b9594505050505056fea2646970667358221220767487219e85098f12d1bd65ea4f86a278f2d3a91c85914eb8d07034fa4d93a264736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x88 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x7F SWAP2 SWAP1 PUSH3 0x2EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x99 DUP2 PUSH3 0xB0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0xAA PUSH3 0x174 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x34A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x186 PUSH3 0x27E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x1D2 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP1 AND DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH3 0x27B JUMPI PUSH8 0xFFFFFFFFFFFFFFFF DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x40 MLOAD PUSH3 0x272 SWAP2 SWAP1 PUSH3 0x32D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D3 DUP3 PUSH3 0x2A6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x2E5 DUP2 PUSH3 0x2C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x302 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x2DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x327 DUP2 PUSH3 0x308 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x344 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x31C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2581 DUP1 PUSH3 0x35A 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 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x9061B923 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xA3772662 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xA644CBDC EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xF4D4D2F8 EQ PUSH2 0x22F JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x1DCFEA09 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x5600F04F EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x77343408 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x107B JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0x10C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x12C2 JUMP JUMPDEST PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0x137A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x121 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12E SWAP2 SWAP1 PUSH2 0x1414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH2 0x37F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0x1436 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x10C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x14C3 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x195 PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C0 SWAP2 SWAP1 PUSH2 0x1590 JUMP JUMPDEST PUSH2 0x3FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x1666 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x5E6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x188F JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0x1436 JUMP JUMPDEST PUSH2 0x920 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x249 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x244 SWAP2 SWAP1 PUSH2 0x1590 JUMP JUMPDEST PUSH2 0x9A6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x1666 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x9061B92300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2D2 JUMPI POP PUSH2 0x2D1 DUP3 PUSH2 0xA54 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E7 DUP6 DUP6 DUP6 DUP6 PUSH2 0xABE JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x2FE SWAP1 PUSH2 0x1936 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 0x32A SWAP1 PUSH2 0x1936 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x377 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x34C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x377 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 0x35A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x387 PUSH2 0xB05 JUMP JUMPDEST PUSH2 0x391 PUSH1 0x0 PUSH2 0xB8C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x3BB PUSH2 0xB05 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 SWAP2 DUP3 PUSH2 0x3CC SWAP3 SWAP2 SWAP1 PUSH2 0x1B28 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH4 0x9061B923 PUSH1 0xE0 SHL DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x41D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x499 JUMPI PUSH2 0x498 PUSH2 0x1197 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 0x4CC JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x4B7 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x4DC SWAP1 PUSH2 0x1936 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 0x508 SWAP1 PUSH2 0x1936 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x555 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x52A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x555 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 0x538 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x56E JUMPI PUSH2 0x56D PUSH2 0x1C60 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP ADDRESS DUP2 DUP4 PUSH4 0xF4D4D2F8 PUSH1 0xE0 SHL DUP6 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x597 SWAP3 SWAP2 SWAP1 PUSH2 0x1C8F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x556F183000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x688 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0x615 JUMPI PUSH2 0x614 PUSH2 0x1C60 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x62A SWAP2 SWAP1 PUSH2 0x1436 JUMP JUMPDEST 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x5F1 JUMP JUMPDEST POP PUSH32 0xAB0B9CC3A46B568CB08D985497CDE8AB7E18892D01F58DB7DC7F0D2AF859B2D7 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x6BA SWAP3 SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D0 PUSH2 0xC50 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x71E JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x753 JUMPI POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x761 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x798 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP7 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x7F7 SWAP2 SWAP1 PUSH2 0x1F29 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x883 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP10 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x81D JUMPI PUSH2 0x81C PUSH2 0x1C60 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x7FB JUMP JUMPDEST POP PUSH32 0xAB0B9CC3A46B568CB08D985497CDE8AB7E18892D01F58DB7DC7F0D2AF859B2D7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x8B3 SWAP2 SWAP1 PUSH2 0x2081 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP4 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x90E SWAP2 SWAP1 PUSH2 0x20DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x928 PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9A3 DUP2 PUSH2 0xB8C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x9B7 DUP6 DUP6 DUP10 DUP10 PUSH2 0xC78 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x2 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 PUSH2 0xA47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3E SWAP1 PUSH2 0x216B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAE5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2281 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xB0D PUSH2 0xD27 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB2B PUSH2 0x3D1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB8A JUMPI PUSH2 0xB4E PUSH2 0xD27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP2 SWAP1 PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP7 DUP2 ADD SWAP1 PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x22DA JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP1 DUP11 DUP11 DUP2 ADD SWAP1 PUSH2 0xCA8 SWAP2 SWAP1 PUSH2 0x23A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xCC3 PUSH2 0xCBD DUP4 DUP8 DUP7 DUP11 PUSH2 0xABE JUMP JUMPDEST DUP6 PUSH2 0xD2F JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP6 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD09 SWAP1 PUSH2 0x2471 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP7 SWAP8 POP SWAP8 POP POP POP POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3F DUP7 DUP7 PUSH2 0xD5B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0xD4F DUP3 DUP3 PUSH2 0xDB7 JUMP JUMPDEST DUP3 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x41 DUP5 MLOAD SUB PUSH2 0xDA0 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 DUP8 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP8 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH2 0xD92 DUP9 DUP3 DUP6 DUP6 PUSH2 0xF1B JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP6 MLOAD PUSH1 0x0 SHL SWAP3 POP SWAP3 POP SWAP3 POP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDDE JUMPI PUSH2 0xDDD PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB ISZERO PUSH2 0xF17 JUMPI PUSH1 0x1 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDF8 JUMPI PUSH2 0xDF7 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE0B JUMPI PUSH2 0xE0A PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE42 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF645EEDF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE56 JUMPI PUSH2 0xE55 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE69 JUMPI PUSH2 0xE68 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xEAE JUMPI DUP1 PUSH1 0x0 SHR PUSH1 0x40 MLOAD PUSH32 0xFCE698F700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA5 SWAP2 SWAP1 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 DUP2 GT ISZERO PUSH2 0xEC1 JUMPI PUSH2 0xEC0 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xED4 JUMPI PUSH2 0xED3 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xF16 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD78BCE0C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF0D SWAP2 SWAP1 PUSH2 0x137A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 PUSH1 0x0 SHR GT ISZERO PUSH2 0xF5B JUMPI PUSH1 0x0 PUSH1 0x3 DUP6 SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x1005 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xF80 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2506 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFF6 JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP1 SHL SWAP4 POP SWAP4 POP SWAP4 POP POP PUSH2 0x1005 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 SHL SWAP4 POP SWAP4 POP SWAP4 POP POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 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 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1058 DUP2 PUSH2 0x1023 JUMP JUMPDEST DUP2 EQ PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1075 DUP2 PUSH2 0x104F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1091 JUMPI PUSH2 0x1090 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x109F DUP5 DUP3 DUP6 ADD PUSH2 0x1066 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10BD DUP2 PUSH2 0x10A8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x10B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1109 DUP3 PUSH2 0x10DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1119 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP2 EQ PUSH2 0x1124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1136 DUP2 PUSH2 0x1110 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1159 DUP2 PUSH2 0x113C JUMP JUMPDEST DUP2 EQ PUSH2 0x1164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1176 DUP2 PUSH2 0x1150 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0x11CF DUP3 PUSH2 0x1186 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11EE JUMPI PUSH2 0x11ED PUSH2 0x1197 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1201 PUSH2 0x100F JUMP JUMPDEST SWAP1 POP PUSH2 0x120D DUP3 DUP3 PUSH2 0x11C6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x122D JUMPI PUSH2 0x122C PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x1236 DUP3 PUSH2 0x1186 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 0x1265 PUSH2 0x1260 DUP5 PUSH2 0x1212 JUMP JUMPDEST PUSH2 0x11F7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1281 JUMPI PUSH2 0x1280 PUSH2 0x1181 JUMP JUMPDEST JUMPDEST PUSH2 0x128C DUP5 DUP3 DUP6 PUSH2 0x1243 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12A9 JUMPI PUSH2 0x12A8 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12B9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1252 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x12DC JUMPI PUSH2 0x12DB PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12EA DUP8 DUP3 DUP9 ADD PUSH2 0x1127 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x12FB DUP8 DUP3 DUP9 ADD PUSH2 0x1167 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x131C JUMPI PUSH2 0x131B PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1328 DUP8 DUP3 DUP9 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1355 DUP8 DUP3 DUP9 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1374 DUP2 PUSH2 0x1361 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x138F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x136B JUMP JUMPDEST 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 0x13CF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x13B4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E6 DUP3 PUSH2 0x1395 JUMP JUMPDEST PUSH2 0x13F0 DUP2 DUP6 PUSH2 0x13A0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1400 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x1409 DUP2 PUSH2 0x1186 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 0x142E DUP2 DUP5 PUSH2 0x13DB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144C JUMPI PUSH2 0x144B PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x145A DUP5 DUP3 DUP6 ADD PUSH2 0x1127 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1483 JUMPI PUSH2 0x1482 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14A0 JUMPI PUSH2 0x149F PUSH2 0x1463 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x14BC JUMPI PUSH2 0x14BB PUSH2 0x1468 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DA JUMPI PUSH2 0x14D9 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F8 JUMPI PUSH2 0x14F7 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1504 DUP6 DUP3 DUP7 ADD PUSH2 0x146D JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1519 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1534 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1510 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1550 JUMPI PUSH2 0x154F PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x156D JUMPI PUSH2 0x156C PUSH2 0x1463 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1589 JUMPI PUSH2 0x1588 PUSH2 0x1468 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15AA JUMPI PUSH2 0x15A9 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15C8 JUMPI PUSH2 0x15C7 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x15D4 DUP8 DUP3 DUP9 ADD PUSH2 0x153A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15F7 JUMPI PUSH2 0x15F6 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1603 DUP8 DUP3 DUP9 ADD PUSH2 0x153A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 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 0x1638 DUP3 PUSH2 0x1611 JUMP JUMPDEST PUSH2 0x1642 DUP2 DUP6 PUSH2 0x161C JUMP JUMPDEST SWAP4 POP PUSH2 0x1652 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x165B DUP2 PUSH2 0x1186 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 0x1680 DUP2 DUP5 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x169E JUMPI PUSH2 0x169D PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16BB JUMPI PUSH2 0x16BA PUSH2 0x1463 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x16D7 JUMPI PUSH2 0x16D6 PUSH2 0x1468 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16F5 JUMPI PUSH2 0x16F4 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1713 JUMPI PUSH2 0x1712 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x171F DUP6 DUP3 DUP7 ADD PUSH2 0x1688 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1746 JUMPI PUSH2 0x1745 PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x174F DUP3 PUSH2 0x1186 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176F PUSH2 0x176A DUP5 PUSH2 0x172B JUMP JUMPDEST PUSH2 0x11F7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x178B JUMPI PUSH2 0x178A PUSH2 0x1181 JUMP JUMPDEST JUMPDEST PUSH2 0x1796 DUP5 DUP3 DUP6 PUSH2 0x1243 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17B3 JUMPI PUSH2 0x17B2 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17C3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x17E7 JUMPI PUSH2 0x17E6 PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180B PUSH2 0x1806 DUP5 PUSH2 0x17CC JUMP JUMPDEST PUSH2 0x11F7 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 0x182E JUMPI PUSH2 0x182D PUSH2 0x1468 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1857 JUMPI DUP1 PUSH2 0x1843 DUP9 DUP3 PUSH2 0x1127 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1830 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1876 JUMPI PUSH2 0x1875 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1886 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x17F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18A6 JUMPI PUSH2 0x18A5 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH2 0x18C3 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x179E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18F1 JUMPI PUSH2 0x18F0 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x18FD DUP6 DUP3 DUP7 ADD PUSH2 0x1861 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x194E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1961 JUMPI PUSH2 0x1960 PUSH2 0x1907 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 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 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 0x19D4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1997 JUMP JUMPDEST PUSH2 0x19DE DUP7 DUP4 PUSH2 0x1997 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 0x1A25 PUSH2 0x1A20 PUSH2 0x1A1B DUP5 PUSH2 0x19F6 JUMP JUMPDEST PUSH2 0x1A00 JUMP JUMPDEST PUSH2 0x19F6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A3F DUP4 PUSH2 0x1A0A JUMP JUMPDEST PUSH2 0x1A53 PUSH2 0x1A4B DUP3 PUSH2 0x1A2C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x19A4 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x1A68 PUSH2 0x1A5B JUMP JUMPDEST PUSH2 0x1A73 DUP2 DUP5 DUP5 PUSH2 0x1A36 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A97 JUMPI PUSH2 0x1A8C PUSH1 0x0 DUP3 PUSH2 0x1A60 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1A79 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1ADC JUMPI PUSH2 0x1AAD DUP2 PUSH2 0x1972 JUMP JUMPDEST PUSH2 0x1AB6 DUP5 PUSH2 0x1987 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AC5 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1AD9 PUSH2 0x1AD1 DUP6 PUSH2 0x1987 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1A78 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 0x1AFF PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1AE1 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B18 DUP4 DUP4 PUSH2 0x1AEE JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B32 DUP4 DUP4 PUSH2 0x1967 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B4B JUMPI PUSH2 0x1B4A PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x1B55 DUP3 SLOAD PUSH2 0x1936 JUMP JUMPDEST PUSH2 0x1B60 DUP3 DUP3 DUP6 PUSH2 0x1A9B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1B7D JUMPI DUP3 DUP8 ADD CALLDATALOAD SWAP1 POP JUMPDEST PUSH2 0x1B87 DUP6 DUP3 PUSH2 0x1B0C JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1BEF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1B9D DUP7 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BC5 JUMPI DUP5 DUP10 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BA0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1BE2 JUMPI DUP5 DUP10 ADD CALLDATALOAD PUSH2 0x1BDE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1AEE 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 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C04 DUP4 DUP6 PUSH2 0x161C JUMP JUMPDEST SWAP4 POP PUSH2 0x1C11 DUP4 DUP6 DUP5 PUSH2 0x1243 JUMP JUMPDEST PUSH2 0x1C1A DUP4 PUSH2 0x1186 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1C40 DUP2 DUP7 DUP9 PUSH2 0x1BF8 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1C55 DUP2 DUP5 DUP7 PUSH2 0x1BF8 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP 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 DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CA9 DUP2 DUP6 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP PUSH2 0x1CB8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1510 JUMP JUMPDEST 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD 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 0x1D07 DUP3 PUSH2 0x1395 JUMP JUMPDEST PUSH2 0x1D11 DUP2 DUP6 PUSH2 0x1CEB JUMP JUMPDEST SWAP4 POP PUSH2 0x1D21 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x1D2A DUP2 PUSH2 0x1186 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D41 DUP4 DUP4 PUSH2 0x1CFC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D61 DUP3 PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0x1D6B DUP2 DUP6 PUSH2 0x1CCA JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x1D7D DUP6 PUSH2 0x1CDB JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1DB9 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x1D9A DUP6 DUP3 PUSH2 0x1D35 JUMP JUMPDEST SWAP5 POP PUSH2 0x1DA5 DUP4 PUSH2 0x1D49 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1D81 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DD4 DUP2 PUSH2 0x1023 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1DEF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1510 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E01 DUP2 DUP8 PUSH2 0x1D56 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1E15 DUP2 DUP7 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP PUSH2 0x1E24 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1DCB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1E36 DUP2 DUP5 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 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 PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E66 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E78 DUP4 DUP4 PUSH2 0x1E5D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E93 PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x1127 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB4 DUP4 DUP6 PUSH2 0x1E42 JUMP JUMPDEST SWAP4 POP PUSH2 0x1EBF DUP3 PUSH2 0x1E53 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1EF8 JUMPI PUSH2 0x1ED5 DUP3 DUP5 PUSH2 0x1E84 JUMP JUMPDEST PUSH2 0x1EDF DUP9 DUP3 PUSH2 0x1E6C JUMP JUMPDEST SWAP8 POP PUSH2 0x1EEA DUP4 PUSH2 0x1E9B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1EC3 JUMP JUMPDEST POP DUP6 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F20 DUP2 DUP5 DUP7 PUSH2 0x1EA8 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1F32 DUP3 PUSH2 0x1395 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F4B JUMPI PUSH2 0x1F4A PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x1F55 DUP3 SLOAD PUSH2 0x1936 JUMP JUMPDEST PUSH2 0x1F60 DUP3 DUP3 DUP6 PUSH2 0x1A9B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1F93 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1F81 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1F8B DUP6 DUP3 PUSH2 0x1B0C JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1FF3 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1FA1 DUP7 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1FC9 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 0x1FA4 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1FE6 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1FE2 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1AEE 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 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x202E DUP3 PUSH2 0x1FFB JUMP JUMPDEST PUSH2 0x2038 DUP2 DUP6 PUSH2 0x1E42 JUMP JUMPDEST SWAP4 POP PUSH2 0x2043 DUP4 PUSH2 0x2006 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2074 JUMPI DUP2 MLOAD PUSH2 0x205B DUP9 DUP3 PUSH2 0x1E6C JUMP JUMPDEST SWAP8 POP PUSH2 0x2066 DUP4 PUSH2 0x2016 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2047 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 0x209B DUP2 DUP5 PUSH2 0x2023 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C8 PUSH2 0x20C3 PUSH2 0x20BE DUP5 PUSH2 0x20A3 JUMP JUMPDEST PUSH2 0x1A00 JUMP JUMPDEST PUSH2 0x113C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20D8 DUP2 PUSH2 0x20AD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x20F3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5369676E617475726556657269666965723A20496E76616C6964207369676174 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7572650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2155 PUSH1 0x23 DUP4 PUSH2 0x13A0 JUMP JUMPDEST SWAP2 POP PUSH2 0x2160 DUP3 PUSH2 0x20F9 JUMP JUMPDEST PUSH1 0x40 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 0x2184 DUP2 PUSH2 0x2148 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21CC PUSH1 0x2 DUP4 PUSH2 0x218B JUMP JUMPDEST SWAP2 POP PUSH2 0x21D7 DUP3 PUSH2 0x2196 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21FA DUP3 PUSH2 0x21E2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x220C DUP3 PUSH2 0x21EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2224 PUSH2 0x221F DUP3 PUSH2 0x10FE JUMP JUMPDEST PUSH2 0x2201 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xC0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2242 DUP3 PUSH2 0x222A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x225A PUSH2 0x2255 DUP3 PUSH2 0x113C JUMP JUMPDEST PUSH2 0x2237 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x227B PUSH2 0x2276 DUP3 PUSH2 0x1361 JUMP JUMPDEST PUSH2 0x2260 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228C DUP3 PUSH2 0x21BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2298 DUP3 DUP8 PUSH2 0x2213 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x22A8 DUP3 DUP7 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x22B8 DUP3 DUP6 PUSH2 0x226A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x22C8 DUP3 DUP5 PUSH2 0x226A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH2 0x22F2 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2311 JUMPI PUSH2 0x2310 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x231D DUP7 DUP3 DUP8 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x232E DUP7 DUP3 DUP8 ADD PUSH2 0x1167 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x234F JUMPI PUSH2 0x234E PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x235B DUP7 DUP3 DUP8 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2370 DUP3 PUSH2 0x10DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2380 DUP2 PUSH2 0x2365 JUMP JUMPDEST DUP2 EQ PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x239D DUP2 PUSH2 0x2377 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23BA JUMPI PUSH2 0x23B9 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23D8 JUMPI PUSH2 0x23D7 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x23E4 DUP6 DUP3 DUP7 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23F5 DUP6 DUP3 DUP7 ADD PUSH2 0x238E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x5369676E617475726556657269666965723A205369676E617475726520657870 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6972656400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x245B PUSH1 0x24 DUP4 PUSH2 0x13A0 JUMP JUMPDEST SWAP2 POP PUSH2 0x2466 DUP3 PUSH2 0x23FF JUMP JUMPDEST PUSH1 0x40 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 0x248A DUP2 PUSH2 0x244E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x24C9 DUP2 PUSH2 0x19F6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x24E4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x24C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2500 DUP2 PUSH2 0x24EA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x251B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x136B JUMP JUMPDEST PUSH2 0x2528 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x24F7 JUMP JUMPDEST PUSH2 0x2535 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x136B JUMP JUMPDEST PUSH2 0x2542 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x136B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x7487219E85098F12D1BD65EA4F86A278F2D3A91C85914E 0xB8 0xD0 PUSH17 0x34FA4D93A264736F6C6343000818003300 ", + "sourceMap": "633:3140:6:-:0;;;1017:73;;;;;;;;;;1039:10;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1061:22:6::1;:20;;;:22;;:::i;:::-;633:3140:::0;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7711:422:2:-;7826:30;7859:26;:24;;;:26;;:::i;:::-;7826:59;;7900:1;:15;;;;;;;;;;;;7896:76;;;7938:23;;;;;;;;;;;;;;7896:76;8003:16;7985:34;;:1;:14;;;;;;;;;;;;:34;;;7981:146;;8052:16;8035:1;:14;;;:33;;;;;;;;;;;;;;;;;;8087:29;8099:16;8087:29;;;;;;:::i;:::-;;;;;;;;7981:146;7760:373;7711:422::o;8737:170::-;8795:30;8870:21;8860:31;;8737:170;:::o;7:126:10:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:101::-;629:7;669:18;662:5;658:30;647:41;;593:101;;;:::o;700:115::-;785:23;802:5;785:23;:::i;:::-;780:3;773:36;700:115;;:::o;821:218::-;912:4;950:2;939:9;935:18;927:26;;963:69;1029:1;1018:9;1014:17;1005:6;963:69;:::i;:::-;821:218;;;;:::o;633:3140:6:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_checkOwner_84": { + "entryPoint": 2821, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_485": { + "entryPoint": 3152, + "id": 485, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_msgSender_498": { + "entryPoint": 3367, + "id": 498, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_throwError_863": { + "entryPoint": 3511, + "id": 863, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 2956, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@initialize_981": { + "entryPoint": 1734, + "id": 981, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@makeSignatureHash_1003": { + "entryPoint": 729, + "id": 1003, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@makeSignatureHash_1264": { + "entryPoint": 2750, + "id": 1264, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 977, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@recover_620": { + "entryPoint": 3375, + "id": 620, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 895, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@resolveWithProof_1093": { + "entryPoint": 2470, + "id": 1093, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@resolve_1063": { + "entryPoint": 1018, + "id": 1063, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@setSigners_1162": { + "entryPoint": 1510, + "id": 1162, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setURL_1127": { + "entryPoint": 947, + "id": 1127, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@signers_912": { + "entryPoint": 915, + "id": 912, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@supportsInterface_1114": { + "entryPoint": 607, + "id": 1114, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1363": { + "entryPoint": 2644, + "id": 1363, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferOwnership_126": { + "entryPoint": 2336, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@tryRecover_590": { + "entryPoint": 3419, + "id": 590, + "parameterSlots": 2, + "returnSlots": 3 + }, + "@tryRecover_778": { + "entryPoint": 3867, + "id": 778, + "parameterSlots": 4, + "returnSlots": 3 + }, + "@url_908": { + "entryPoint": 753, + "id": 908, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@verify_1334": { + "entryPoint": 3192, + "id": 1334, + "parameterSlots": 4, + "returnSlots": 2 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 6136, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 4690, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 5980, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 4391, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_payable": { + "entryPoint": 9102, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 5768, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 6241, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 4198, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_calldata_ptr": { + "entryPoint": 5434, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 4756, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_calldata_ptr": { + "entryPoint": 5229, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 6046, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint64": { + "entryPoint": 4455, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 5174, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_uint64t_bytes_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 4802, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 5854, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 4219, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr": { + "entryPoint": 5520, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bytes_memory_ptrt_address_payable": { + "entryPoint": 9123, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes_memory_ptrt_uint64t_bytes_memory_ptr": { + "entryPoint": 8922, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_string_calldata_ptr": { + "entryPoint": 5315, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_string_memory_ptrt_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 6287, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_address_to_t_address": { + "entryPoint": 7788, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr": { + "entryPoint": 7477, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address": { + "entryPoint": 7773, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5392, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": { + "entryPoint": 8723, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_address_$dyn_calldata_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 7848, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 8227, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack": { + "entryPoint": 7510, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 4276, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 4971, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": { + "entryPoint": 8810, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes4_to_t_bytes4_fromStack": { + "entryPoint": 7627, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 7160, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 5677, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack": { + "entryPoint": 8399, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr": { + "entryPoint": 7420, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5083, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 8639, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8520, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 9294, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9408, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack": { + "entryPoint": 8777, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 9463, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_t_address_t_uint64_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_address_t_uint64_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 8833, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 5407, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr_t_bytes4_t_bytes_memory_ptr__to_t_address_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr_t_bytes4_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 7642, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 7941, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 8321, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 4291, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 4986, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": { + "entryPoint": 9478, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 7205, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 5734, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__fromStack_reversed": { + "entryPoint": 7311, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed": { + "entryPoint": 8414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5140, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8555, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9329, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9423, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4599, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 4111, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 6092, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 4626, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 5931, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 7763, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 8198, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr": { + "entryPoint": 7387, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 6514, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 8187, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr": { + "entryPoint": 7359, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 5649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_calldata_ptr": { + "entryPoint": 6503, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 5013, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 7835, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 8214, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr": { + "entryPoint": 7497, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 7746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack": { + "entryPoint": 7370, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 5660, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr": { + "entryPoint": 7403, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 8587, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "calldata_access_t_address": { + "entryPoint": 7812, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 6811, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 4350, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_address_payable": { + "entryPoint": 9061, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 4264, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 4961, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 4131, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 8355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 4318, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 6646, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint64": { + "entryPoint": 4412, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 9450, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 6776, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_rational_1_by_1_to_t_uint64": { + "entryPoint": 8365, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 6666, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage": { + "entryPoint": 6952, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 7977, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 4675, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 5041, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 6535, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 6454, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 6924, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4550, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 6656, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_address": { + "entryPoint": 8705, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_bytes32": { + "entryPoint": 8800, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint160": { + "entryPoint": 8687, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "leftAlign_t_uint64": { + "entryPoint": 8759, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 6894, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x21": { + "entryPoint": 9361, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 6407, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 7264, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4503, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 6700, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 5219, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4476, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 5224, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 4481, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 4126, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 4121, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4486, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_192": { + "entryPoint": 8746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_96": { + "entryPoint": 8674, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 6551, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 6881, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 6752, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a": { + "entryPoint": 8598, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22": { + "entryPoint": 8441, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a": { + "entryPoint": 9215, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 6564, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 6710, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 4368, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address_payable": { + "entryPoint": 9079, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 4175, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint64": { + "entryPoint": 4432, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 6747, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:40278:10", + "nodeType": "YulBlock", + "src": "0:40278:10", + "statements": [ + { + "body": { + "nativeSrc": "47:35:10", + "nodeType": "YulBlock", + "src": "47:35:10", + "statements": [ + { + "nativeSrc": "57:19:10", + "nodeType": "YulAssignment", + "src": "57:19:10", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:10", + "nodeType": "YulLiteral", + "src": "73:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:10", + "nodeType": "YulIdentifier", + "src": "67:5:10" + }, + "nativeSrc": "67:9:10", + "nodeType": "YulFunctionCall", + "src": "67:9:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:10", + "nodeType": "YulIdentifier", + "src": "57:6:10" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:10", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:10", + "nodeType": "YulTypedName", + "src": "40:6:10", + "type": "" + } + ], + "src": "7:75:10" + }, + { + "body": { + "nativeSrc": "177:28:10", + "nodeType": "YulBlock", + "src": "177:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:10", + "nodeType": "YulLiteral", + "src": "194:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:10", + "nodeType": "YulLiteral", + "src": "197:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:10", + "nodeType": "YulIdentifier", + "src": "187:6:10" + }, + "nativeSrc": "187:12:10", + "nodeType": "YulFunctionCall", + "src": "187:12:10" + }, + "nativeSrc": "187:12:10", + "nodeType": "YulExpressionStatement", + "src": "187:12:10" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:10", + "nodeType": "YulFunctionDefinition", + "src": "88:117:10" + }, + { + "body": { + "nativeSrc": "300:28:10", + "nodeType": "YulBlock", + "src": "300:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:10", + "nodeType": "YulLiteral", + "src": "317:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:10", + "nodeType": "YulLiteral", + "src": "320:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:10", + "nodeType": "YulIdentifier", + "src": "310:6:10" + }, + "nativeSrc": "310:12:10", + "nodeType": "YulFunctionCall", + "src": "310:12:10" + }, + "nativeSrc": "310:12:10", + "nodeType": "YulExpressionStatement", + "src": "310:12:10" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:10", + "nodeType": "YulFunctionDefinition", + "src": "211:117:10" + }, + { + "body": { + "nativeSrc": "378:105:10", + "nodeType": "YulBlock", + "src": "378:105:10", + "statements": [ + { + "nativeSrc": "388:89:10", + "nodeType": "YulAssignment", + "src": "388:89:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:10", + "nodeType": "YulIdentifier", + "src": "403:5:10" + }, + { + "kind": "number", + "nativeSrc": "410:66:10", + "nodeType": "YulLiteral", + "src": "410:66:10", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:10", + "nodeType": "YulIdentifier", + "src": "399:3:10" + }, + "nativeSrc": "399:78:10", + "nodeType": "YulFunctionCall", + "src": "399:78:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:10", + "nodeType": "YulIdentifier", + "src": "388:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:10", + "nodeType": "YulTypedName", + "src": "360:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:10", + "nodeType": "YulTypedName", + "src": "370:7:10", + "type": "" + } + ], + "src": "334:149:10" + }, + { + "body": { + "nativeSrc": "531:78:10", + "nodeType": "YulBlock", + "src": "531:78:10", + "statements": [ + { + "body": { + "nativeSrc": "587:16:10", + "nodeType": "YulBlock", + "src": "587:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:10", + "nodeType": "YulLiteral", + "src": "596:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:10", + "nodeType": "YulLiteral", + "src": "599:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:10", + "nodeType": "YulIdentifier", + "src": "589:6:10" + }, + "nativeSrc": "589:12:10", + "nodeType": "YulFunctionCall", + "src": "589:12:10" + }, + "nativeSrc": "589:12:10", + "nodeType": "YulExpressionStatement", + "src": "589:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:10", + "nodeType": "YulIdentifier", + "src": "554:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:10", + "nodeType": "YulIdentifier", + "src": "578:5:10" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:10", + "nodeType": "YulIdentifier", + "src": "561:16:10" + }, + "nativeSrc": "561:23:10", + "nodeType": "YulFunctionCall", + "src": "561:23:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:10", + "nodeType": "YulIdentifier", + "src": "551:2:10" + }, + "nativeSrc": "551:34:10", + "nodeType": "YulFunctionCall", + "src": "551:34:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:10", + "nodeType": "YulIdentifier", + "src": "544:6:10" + }, + "nativeSrc": "544:42:10", + "nodeType": "YulFunctionCall", + "src": "544:42:10" + }, + "nativeSrc": "541:62:10", + "nodeType": "YulIf", + "src": "541:62:10" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:10", + "nodeType": "YulTypedName", + "src": "524:5:10", + "type": "" + } + ], + "src": "489:120:10" + }, + { + "body": { + "nativeSrc": "666:86:10", + "nodeType": "YulBlock", + "src": "666:86:10", + "statements": [ + { + "nativeSrc": "676:29:10", + "nodeType": "YulAssignment", + "src": "676:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:10", + "nodeType": "YulIdentifier", + "src": "698:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:10", + "nodeType": "YulIdentifier", + "src": "685:12:10" + }, + "nativeSrc": "685:20:10", + "nodeType": "YulFunctionCall", + "src": "685:20:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:10", + "nodeType": "YulIdentifier", + "src": "676:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:10", + "nodeType": "YulIdentifier", + "src": "740:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:10", + "nodeType": "YulIdentifier", + "src": "714:25:10" + }, + "nativeSrc": "714:32:10", + "nodeType": "YulFunctionCall", + "src": "714:32:10" + }, + "nativeSrc": "714:32:10", + "nodeType": "YulExpressionStatement", + "src": "714:32:10" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:10", + "nodeType": "YulTypedName", + "src": "644:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:10", + "nodeType": "YulTypedName", + "src": "652:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:10", + "nodeType": "YulTypedName", + "src": "660:5:10", + "type": "" + } + ], + "src": "615:137:10" + }, + { + "body": { + "nativeSrc": "823:262:10", + "nodeType": "YulBlock", + "src": "823:262:10", + "statements": [ + { + "body": { + "nativeSrc": "869:83:10", + "nodeType": "YulBlock", + "src": "869:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:10", + "nodeType": "YulIdentifier", + "src": "871:77:10" + }, + "nativeSrc": "871:79:10", + "nodeType": "YulFunctionCall", + "src": "871:79:10" + }, + "nativeSrc": "871:79:10", + "nodeType": "YulExpressionStatement", + "src": "871:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:10", + "nodeType": "YulIdentifier", + "src": "844:7:10" + }, + { + "name": "headStart", + "nativeSrc": "853:9:10", + "nodeType": "YulIdentifier", + "src": "853:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:10", + "nodeType": "YulIdentifier", + "src": "840:3:10" + }, + "nativeSrc": "840:23:10", + "nodeType": "YulFunctionCall", + "src": "840:23:10" + }, + { + "kind": "number", + "nativeSrc": "865:2:10", + "nodeType": "YulLiteral", + "src": "865:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:10", + "nodeType": "YulIdentifier", + "src": "836:3:10" + }, + "nativeSrc": "836:32:10", + "nodeType": "YulFunctionCall", + "src": "836:32:10" + }, + "nativeSrc": "833:119:10", + "nodeType": "YulIf", + "src": "833:119:10" + }, + { + "nativeSrc": "962:116:10", + "nodeType": "YulBlock", + "src": "962:116:10", + "statements": [ + { + "nativeSrc": "977:15:10", + "nodeType": "YulVariableDeclaration", + "src": "977:15:10", + "value": { + "kind": "number", + "nativeSrc": "991:1:10", + "nodeType": "YulLiteral", + "src": "991:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:10", + "nodeType": "YulTypedName", + "src": "981:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:10", + "nodeType": "YulAssignment", + "src": "1006:62:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:10", + "nodeType": "YulIdentifier", + "src": "1040:9:10" + }, + { + "name": "offset", + "nativeSrc": "1051:6:10", + "nodeType": "YulIdentifier", + "src": "1051:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:10", + "nodeType": "YulIdentifier", + "src": "1036:3:10" + }, + "nativeSrc": "1036:22:10", + "nodeType": "YulFunctionCall", + "src": "1036:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:10", + "nodeType": "YulIdentifier", + "src": "1060:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:10", + "nodeType": "YulIdentifier", + "src": "1016:19:10" + }, + "nativeSrc": "1016:52:10", + "nodeType": "YulFunctionCall", + "src": "1016:52:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:10", + "nodeType": "YulIdentifier", + "src": "1006:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:10", + "nodeType": "YulTypedName", + "src": "793:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:10", + "nodeType": "YulTypedName", + "src": "804:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:10", + "nodeType": "YulTypedName", + "src": "816:6:10", + "type": "" + } + ], + "src": "758:327:10" + }, + { + "body": { + "nativeSrc": "1133:48:10", + "nodeType": "YulBlock", + "src": "1133:48:10", + "statements": [ + { + "nativeSrc": "1143:32:10", + "nodeType": "YulAssignment", + "src": "1143:32:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:10", + "nodeType": "YulIdentifier", + "src": "1168:5:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:10", + "nodeType": "YulIdentifier", + "src": "1161:6:10" + }, + "nativeSrc": "1161:13:10", + "nodeType": "YulFunctionCall", + "src": "1161:13:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:10", + "nodeType": "YulIdentifier", + "src": "1154:6:10" + }, + "nativeSrc": "1154:21:10", + "nodeType": "YulFunctionCall", + "src": "1154:21:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:10", + "nodeType": "YulIdentifier", + "src": "1143:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:10", + "nodeType": "YulTypedName", + "src": "1115:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:10", + "nodeType": "YulTypedName", + "src": "1125:7:10", + "type": "" + } + ], + "src": "1091:90:10" + }, + { + "body": { + "nativeSrc": "1246:50:10", + "nodeType": "YulBlock", + "src": "1246:50:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:10", + "nodeType": "YulIdentifier", + "src": "1263:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:10", + "nodeType": "YulIdentifier", + "src": "1283:5:10" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:10", + "nodeType": "YulIdentifier", + "src": "1268:14:10" + }, + "nativeSrc": "1268:21:10", + "nodeType": "YulFunctionCall", + "src": "1268:21:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:10", + "nodeType": "YulIdentifier", + "src": "1256:6:10" + }, + "nativeSrc": "1256:34:10", + "nodeType": "YulFunctionCall", + "src": "1256:34:10" + }, + "nativeSrc": "1256:34:10", + "nodeType": "YulExpressionStatement", + "src": "1256:34:10" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:10", + "nodeType": "YulTypedName", + "src": "1234:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:10", + "nodeType": "YulTypedName", + "src": "1241:3:10", + "type": "" + } + ], + "src": "1187:109:10" + }, + { + "body": { + "nativeSrc": "1394:118:10", + "nodeType": "YulBlock", + "src": "1394:118:10", + "statements": [ + { + "nativeSrc": "1404:26:10", + "nodeType": "YulAssignment", + "src": "1404:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:10", + "nodeType": "YulIdentifier", + "src": "1416:9:10" + }, + { + "kind": "number", + "nativeSrc": "1427:2:10", + "nodeType": "YulLiteral", + "src": "1427:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:10", + "nodeType": "YulIdentifier", + "src": "1412:3:10" + }, + "nativeSrc": "1412:18:10", + "nodeType": "YulFunctionCall", + "src": "1412:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:10", + "nodeType": "YulIdentifier", + "src": "1404:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:10", + "nodeType": "YulIdentifier", + "src": "1478:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:10", + "nodeType": "YulIdentifier", + "src": "1491:9:10" + }, + { + "kind": "number", + "nativeSrc": "1502:1:10", + "nodeType": "YulLiteral", + "src": "1502:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:10", + "nodeType": "YulIdentifier", + "src": "1487:3:10" + }, + "nativeSrc": "1487:17:10", + "nodeType": "YulFunctionCall", + "src": "1487:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:10", + "nodeType": "YulIdentifier", + "src": "1440:37:10" + }, + "nativeSrc": "1440:65:10", + "nodeType": "YulFunctionCall", + "src": "1440:65:10" + }, + "nativeSrc": "1440:65:10", + "nodeType": "YulExpressionStatement", + "src": "1440:65:10" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:10", + "nodeType": "YulTypedName", + "src": "1366:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:10", + "nodeType": "YulTypedName", + "src": "1378:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:10", + "nodeType": "YulTypedName", + "src": "1389:4:10", + "type": "" + } + ], + "src": "1302:210:10" + }, + { + "body": { + "nativeSrc": "1563:81:10", + "nodeType": "YulBlock", + "src": "1563:81:10", + "statements": [ + { + "nativeSrc": "1573:65:10", + "nodeType": "YulAssignment", + "src": "1573:65:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1588:5:10", + "nodeType": "YulIdentifier", + "src": "1588:5:10" + }, + { + "kind": "number", + "nativeSrc": "1595:42:10", + "nodeType": "YulLiteral", + "src": "1595:42:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1584:3:10", + "nodeType": "YulIdentifier", + "src": "1584:3:10" + }, + "nativeSrc": "1584:54:10", + "nodeType": "YulFunctionCall", + "src": "1584:54:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1573:7:10", + "nodeType": "YulIdentifier", + "src": "1573:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1518:126:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1545:5:10", + "nodeType": "YulTypedName", + "src": "1545:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1555:7:10", + "nodeType": "YulTypedName", + "src": "1555:7:10", + "type": "" + } + ], + "src": "1518:126:10" + }, + { + "body": { + "nativeSrc": "1695:51:10", + "nodeType": "YulBlock", + "src": "1695:51:10", + "statements": [ + { + "nativeSrc": "1705:35:10", + "nodeType": "YulAssignment", + "src": "1705:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1734:5:10", + "nodeType": "YulIdentifier", + "src": "1734:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1716:17:10", + "nodeType": "YulIdentifier", + "src": "1716:17:10" + }, + "nativeSrc": "1716:24:10", + "nodeType": "YulFunctionCall", + "src": "1716:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1705:7:10", + "nodeType": "YulIdentifier", + "src": "1705:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1650:96:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1677:5:10", + "nodeType": "YulTypedName", + "src": "1677:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1687:7:10", + "nodeType": "YulTypedName", + "src": "1687:7:10", + "type": "" + } + ], + "src": "1650:96:10" + }, + { + "body": { + "nativeSrc": "1795:79:10", + "nodeType": "YulBlock", + "src": "1795:79:10", + "statements": [ + { + "body": { + "nativeSrc": "1852:16:10", + "nodeType": "YulBlock", + "src": "1852:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1861:1:10", + "nodeType": "YulLiteral", + "src": "1861:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1864:1:10", + "nodeType": "YulLiteral", + "src": "1864:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1854:6:10", + "nodeType": "YulIdentifier", + "src": "1854:6:10" + }, + "nativeSrc": "1854:12:10", + "nodeType": "YulFunctionCall", + "src": "1854:12:10" + }, + "nativeSrc": "1854:12:10", + "nodeType": "YulExpressionStatement", + "src": "1854:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1818:5:10", + "nodeType": "YulIdentifier", + "src": "1818:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1843:5:10", + "nodeType": "YulIdentifier", + "src": "1843:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1825:17:10", + "nodeType": "YulIdentifier", + "src": "1825:17:10" + }, + "nativeSrc": "1825:24:10", + "nodeType": "YulFunctionCall", + "src": "1825:24:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1815:2:10", + "nodeType": "YulIdentifier", + "src": "1815:2:10" + }, + "nativeSrc": "1815:35:10", + "nodeType": "YulFunctionCall", + "src": "1815:35:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1808:6:10", + "nodeType": "YulIdentifier", + "src": "1808:6:10" + }, + "nativeSrc": "1808:43:10", + "nodeType": "YulFunctionCall", + "src": "1808:43:10" + }, + "nativeSrc": "1805:63:10", + "nodeType": "YulIf", + "src": "1805:63:10" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "1752:122:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1788:5:10", + "nodeType": "YulTypedName", + "src": "1788:5:10", + "type": "" + } + ], + "src": "1752:122:10" + }, + { + "body": { + "nativeSrc": "1932:87:10", + "nodeType": "YulBlock", + "src": "1932:87:10", + "statements": [ + { + "nativeSrc": "1942:29:10", + "nodeType": "YulAssignment", + "src": "1942:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1964:6:10", + "nodeType": "YulIdentifier", + "src": "1964:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1951:12:10", + "nodeType": "YulIdentifier", + "src": "1951:12:10" + }, + "nativeSrc": "1951:20:10", + "nodeType": "YulFunctionCall", + "src": "1951:20:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1942:5:10", + "nodeType": "YulIdentifier", + "src": "1942:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2007:5:10", + "nodeType": "YulIdentifier", + "src": "2007:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1980:26:10", + "nodeType": "YulIdentifier", + "src": "1980:26:10" + }, + "nativeSrc": "1980:33:10", + "nodeType": "YulFunctionCall", + "src": "1980:33:10" + }, + "nativeSrc": "1980:33:10", + "nodeType": "YulExpressionStatement", + "src": "1980:33:10" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1880:139:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1910:6:10", + "nodeType": "YulTypedName", + "src": "1910:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1918:3:10", + "nodeType": "YulTypedName", + "src": "1918:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1926:5:10", + "nodeType": "YulTypedName", + "src": "1926:5:10", + "type": "" + } + ], + "src": "1880:139:10" + }, + { + "body": { + "nativeSrc": "2069:57:10", + "nodeType": "YulBlock", + "src": "2069:57:10", + "statements": [ + { + "nativeSrc": "2079:41:10", + "nodeType": "YulAssignment", + "src": "2079:41:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2094:5:10", + "nodeType": "YulIdentifier", + "src": "2094:5:10" + }, + { + "kind": "number", + "nativeSrc": "2101:18:10", + "nodeType": "YulLiteral", + "src": "2101:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2090:3:10", + "nodeType": "YulIdentifier", + "src": "2090:3:10" + }, + "nativeSrc": "2090:30:10", + "nodeType": "YulFunctionCall", + "src": "2090:30:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2079:7:10", + "nodeType": "YulIdentifier", + "src": "2079:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint64", + "nativeSrc": "2025:101:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2051:5:10", + "nodeType": "YulTypedName", + "src": "2051:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2061:7:10", + "nodeType": "YulTypedName", + "src": "2061:7:10", + "type": "" + } + ], + "src": "2025:101:10" + }, + { + "body": { + "nativeSrc": "2174:78:10", + "nodeType": "YulBlock", + "src": "2174:78:10", + "statements": [ + { + "body": { + "nativeSrc": "2230:16:10", + "nodeType": "YulBlock", + "src": "2230:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2239:1:10", + "nodeType": "YulLiteral", + "src": "2239:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2242:1:10", + "nodeType": "YulLiteral", + "src": "2242:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2232:6:10", + "nodeType": "YulIdentifier", + "src": "2232:6:10" + }, + "nativeSrc": "2232:12:10", + "nodeType": "YulFunctionCall", + "src": "2232:12:10" + }, + "nativeSrc": "2232:12:10", + "nodeType": "YulExpressionStatement", + "src": "2232:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2197:5:10", + "nodeType": "YulIdentifier", + "src": "2197:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2221:5:10", + "nodeType": "YulIdentifier", + "src": "2221:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "2204:16:10", + "nodeType": "YulIdentifier", + "src": "2204:16:10" + }, + "nativeSrc": "2204:23:10", + "nodeType": "YulFunctionCall", + "src": "2204:23:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2194:2:10", + "nodeType": "YulIdentifier", + "src": "2194:2:10" + }, + "nativeSrc": "2194:34:10", + "nodeType": "YulFunctionCall", + "src": "2194:34:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2187:6:10", + "nodeType": "YulIdentifier", + "src": "2187:6:10" + }, + "nativeSrc": "2187:42:10", + "nodeType": "YulFunctionCall", + "src": "2187:42:10" + }, + "nativeSrc": "2184:62:10", + "nodeType": "YulIf", + "src": "2184:62:10" + } + ] + }, + "name": "validator_revert_t_uint64", + "nativeSrc": "2132:120:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2167:5:10", + "nodeType": "YulTypedName", + "src": "2167:5:10", + "type": "" + } + ], + "src": "2132:120:10" + }, + { + "body": { + "nativeSrc": "2309:86:10", + "nodeType": "YulBlock", + "src": "2309:86:10", + "statements": [ + { + "nativeSrc": "2319:29:10", + "nodeType": "YulAssignment", + "src": "2319:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2341:6:10", + "nodeType": "YulIdentifier", + "src": "2341:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2328:12:10", + "nodeType": "YulIdentifier", + "src": "2328:12:10" + }, + "nativeSrc": "2328:20:10", + "nodeType": "YulFunctionCall", + "src": "2328:20:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2319:5:10", + "nodeType": "YulIdentifier", + "src": "2319:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2383:5:10", + "nodeType": "YulIdentifier", + "src": "2383:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_uint64", + "nativeSrc": "2357:25:10", + "nodeType": "YulIdentifier", + "src": "2357:25:10" + }, + "nativeSrc": "2357:32:10", + "nodeType": "YulFunctionCall", + "src": "2357:32:10" + }, + "nativeSrc": "2357:32:10", + "nodeType": "YulExpressionStatement", + "src": "2357:32:10" + } + ] + }, + "name": "abi_decode_t_uint64", + "nativeSrc": "2258:137:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2287:6:10", + "nodeType": "YulTypedName", + "src": "2287:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2295:3:10", + "nodeType": "YulTypedName", + "src": "2295:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2303:5:10", + "nodeType": "YulTypedName", + "src": "2303:5:10", + "type": "" + } + ], + "src": "2258:137:10" + }, + { + "body": { + "nativeSrc": "2490:28:10", + "nodeType": "YulBlock", + "src": "2490:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2507:1:10", + "nodeType": "YulLiteral", + "src": "2507:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2510:1:10", + "nodeType": "YulLiteral", + "src": "2510:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2500:6:10", + "nodeType": "YulIdentifier", + "src": "2500:6:10" + }, + "nativeSrc": "2500:12:10", + "nodeType": "YulFunctionCall", + "src": "2500:12:10" + }, + "nativeSrc": "2500:12:10", + "nodeType": "YulExpressionStatement", + "src": "2500:12:10" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2401:117:10", + "nodeType": "YulFunctionDefinition", + "src": "2401:117:10" + }, + { + "body": { + "nativeSrc": "2613:28:10", + "nodeType": "YulBlock", + "src": "2613:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2630:1:10", + "nodeType": "YulLiteral", + "src": "2630:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2633:1:10", + "nodeType": "YulLiteral", + "src": "2633:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2623:6:10", + "nodeType": "YulIdentifier", + "src": "2623:6:10" + }, + "nativeSrc": "2623:12:10", + "nodeType": "YulFunctionCall", + "src": "2623:12:10" + }, + "nativeSrc": "2623:12:10", + "nodeType": "YulExpressionStatement", + "src": "2623:12:10" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2524:117:10", + "nodeType": "YulFunctionDefinition", + "src": "2524:117:10" + }, + { + "body": { + "nativeSrc": "2695:54:10", + "nodeType": "YulBlock", + "src": "2695:54:10", + "statements": [ + { + "nativeSrc": "2705:38:10", + "nodeType": "YulAssignment", + "src": "2705:38:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2723:5:10", + "nodeType": "YulIdentifier", + "src": "2723:5:10" + }, + { + "kind": "number", + "nativeSrc": "2730:2:10", + "nodeType": "YulLiteral", + "src": "2730:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2719:3:10", + "nodeType": "YulIdentifier", + "src": "2719:3:10" + }, + "nativeSrc": "2719:14:10", + "nodeType": "YulFunctionCall", + "src": "2719:14:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2739:2:10", + "nodeType": "YulLiteral", + "src": "2739:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2735:3:10", + "nodeType": "YulIdentifier", + "src": "2735:3:10" + }, + "nativeSrc": "2735:7:10", + "nodeType": "YulFunctionCall", + "src": "2735:7:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2715:3:10", + "nodeType": "YulIdentifier", + "src": "2715:3:10" + }, + "nativeSrc": "2715:28:10", + "nodeType": "YulFunctionCall", + "src": "2715:28:10" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2705:6:10", + "nodeType": "YulIdentifier", + "src": "2705:6:10" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2647:102:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2678:5:10", + "nodeType": "YulTypedName", + "src": "2678:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2688:6:10", + "nodeType": "YulTypedName", + "src": "2688:6:10", + "type": "" + } + ], + "src": "2647:102:10" + }, + { + "body": { + "nativeSrc": "2783:152:10", + "nodeType": "YulBlock", + "src": "2783:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2800:1:10", + "nodeType": "YulLiteral", + "src": "2800:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2803:77:10", + "nodeType": "YulLiteral", + "src": "2803:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2793:6:10", + "nodeType": "YulIdentifier", + "src": "2793:6:10" + }, + "nativeSrc": "2793:88:10", + "nodeType": "YulFunctionCall", + "src": "2793:88:10" + }, + "nativeSrc": "2793:88:10", + "nodeType": "YulExpressionStatement", + "src": "2793:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2897:1:10", + "nodeType": "YulLiteral", + "src": "2897:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2900:4:10", + "nodeType": "YulLiteral", + "src": "2900:4:10", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2890:6:10", + "nodeType": "YulIdentifier", + "src": "2890:6:10" + }, + "nativeSrc": "2890:15:10", + "nodeType": "YulFunctionCall", + "src": "2890:15:10" + }, + "nativeSrc": "2890:15:10", + "nodeType": "YulExpressionStatement", + "src": "2890:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2921:1:10", + "nodeType": "YulLiteral", + "src": "2921:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2924:4:10", + "nodeType": "YulLiteral", + "src": "2924:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2914:6:10", + "nodeType": "YulIdentifier", + "src": "2914:6:10" + }, + "nativeSrc": "2914:15:10", + "nodeType": "YulFunctionCall", + "src": "2914:15:10" + }, + "nativeSrc": "2914:15:10", + "nodeType": "YulExpressionStatement", + "src": "2914:15:10" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "2755:180:10", + "nodeType": "YulFunctionDefinition", + "src": "2755:180:10" + }, + { + "body": { + "nativeSrc": "2984:238:10", + "nodeType": "YulBlock", + "src": "2984:238:10", + "statements": [ + { + "nativeSrc": "2994:58:10", + "nodeType": "YulVariableDeclaration", + "src": "2994:58:10", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "3016:6:10", + "nodeType": "YulIdentifier", + "src": "3016:6:10" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "3046:4:10", + "nodeType": "YulIdentifier", + "src": "3046:4:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "3024:21:10", + "nodeType": "YulIdentifier", + "src": "3024:21:10" + }, + "nativeSrc": "3024:27:10", + "nodeType": "YulFunctionCall", + "src": "3024:27:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3012:3:10", + "nodeType": "YulIdentifier", + "src": "3012:3:10" + }, + "nativeSrc": "3012:40:10", + "nodeType": "YulFunctionCall", + "src": "3012:40:10" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "2998:10:10", + "nodeType": "YulTypedName", + "src": "2998:10:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3163:22:10", + "nodeType": "YulBlock", + "src": "3163:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "3165:16:10", + "nodeType": "YulIdentifier", + "src": "3165:16:10" + }, + "nativeSrc": "3165:18:10", + "nodeType": "YulFunctionCall", + "src": "3165:18:10" + }, + "nativeSrc": "3165:18:10", + "nodeType": "YulExpressionStatement", + "src": "3165:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "3106:10:10", + "nodeType": "YulIdentifier", + "src": "3106:10:10" + }, + { + "kind": "number", + "nativeSrc": "3118:18:10", + "nodeType": "YulLiteral", + "src": "3118:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3103:2:10", + "nodeType": "YulIdentifier", + "src": "3103:2:10" + }, + "nativeSrc": "3103:34:10", + "nodeType": "YulFunctionCall", + "src": "3103:34:10" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "3142:10:10", + "nodeType": "YulIdentifier", + "src": "3142:10:10" + }, + { + "name": "memPtr", + "nativeSrc": "3154:6:10", + "nodeType": "YulIdentifier", + "src": "3154:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3139:2:10", + "nodeType": "YulIdentifier", + "src": "3139:2:10" + }, + "nativeSrc": "3139:22:10", + "nodeType": "YulFunctionCall", + "src": "3139:22:10" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3100:2:10", + "nodeType": "YulIdentifier", + "src": "3100:2:10" + }, + "nativeSrc": "3100:62:10", + "nodeType": "YulFunctionCall", + "src": "3100:62:10" + }, + "nativeSrc": "3097:88:10", + "nodeType": "YulIf", + "src": "3097:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3201:2:10", + "nodeType": "YulLiteral", + "src": "3201:2:10", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "3205:10:10", + "nodeType": "YulIdentifier", + "src": "3205:10:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3194:6:10", + "nodeType": "YulIdentifier", + "src": "3194:6:10" + }, + "nativeSrc": "3194:22:10", + "nodeType": "YulFunctionCall", + "src": "3194:22:10" + }, + "nativeSrc": "3194:22:10", + "nodeType": "YulExpressionStatement", + "src": "3194:22:10" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "2941:281:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "2970:6:10", + "nodeType": "YulTypedName", + "src": "2970:6:10", + "type": "" + }, + { + "name": "size", + "nativeSrc": "2978:4:10", + "nodeType": "YulTypedName", + "src": "2978:4:10", + "type": "" + } + ], + "src": "2941:281:10" + }, + { + "body": { + "nativeSrc": "3269:88:10", + "nodeType": "YulBlock", + "src": "3269:88:10", + "statements": [ + { + "nativeSrc": "3279:30:10", + "nodeType": "YulAssignment", + "src": "3279:30:10", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "3289:18:10", + "nodeType": "YulIdentifier", + "src": "3289:18:10" + }, + "nativeSrc": "3289:20:10", + "nodeType": "YulFunctionCall", + "src": "3289:20:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "3279:6:10", + "nodeType": "YulIdentifier", + "src": "3279:6:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "3338:6:10", + "nodeType": "YulIdentifier", + "src": "3338:6:10" + }, + { + "name": "size", + "nativeSrc": "3346:4:10", + "nodeType": "YulIdentifier", + "src": "3346:4:10" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "3318:19:10", + "nodeType": "YulIdentifier", + "src": "3318:19:10" + }, + "nativeSrc": "3318:33:10", + "nodeType": "YulFunctionCall", + "src": "3318:33:10" + }, + "nativeSrc": "3318:33:10", + "nodeType": "YulExpressionStatement", + "src": "3318:33:10" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "3228:129:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "3253:4:10", + "nodeType": "YulTypedName", + "src": "3253:4:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "3262:6:10", + "nodeType": "YulTypedName", + "src": "3262:6:10", + "type": "" + } + ], + "src": "3228:129:10" + }, + { + "body": { + "nativeSrc": "3429:241:10", + "nodeType": "YulBlock", + "src": "3429:241:10", + "statements": [ + { + "body": { + "nativeSrc": "3534:22:10", + "nodeType": "YulBlock", + "src": "3534:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "3536:16:10", + "nodeType": "YulIdentifier", + "src": "3536:16:10" + }, + "nativeSrc": "3536:18:10", + "nodeType": "YulFunctionCall", + "src": "3536:18:10" + }, + "nativeSrc": "3536:18:10", + "nodeType": "YulExpressionStatement", + "src": "3536:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3506:6:10", + "nodeType": "YulIdentifier", + "src": "3506:6:10" + }, + { + "kind": "number", + "nativeSrc": "3514:18:10", + "nodeType": "YulLiteral", + "src": "3514:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3503:2:10", + "nodeType": "YulIdentifier", + "src": "3503:2:10" + }, + "nativeSrc": "3503:30:10", + "nodeType": "YulFunctionCall", + "src": "3503:30:10" + }, + "nativeSrc": "3500:56:10", + "nodeType": "YulIf", + "src": "3500:56:10" + }, + { + "nativeSrc": "3566:37:10", + "nodeType": "YulAssignment", + "src": "3566:37:10", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3596:6:10", + "nodeType": "YulIdentifier", + "src": "3596:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "3574:21:10", + "nodeType": "YulIdentifier", + "src": "3574:21:10" + }, + "nativeSrc": "3574:29:10", + "nodeType": "YulFunctionCall", + "src": "3574:29:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "3566:4:10", + "nodeType": "YulIdentifier", + "src": "3566:4:10" + } + ] + }, + { + "nativeSrc": "3640:23:10", + "nodeType": "YulAssignment", + "src": "3640:23:10", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "3652:4:10", + "nodeType": "YulIdentifier", + "src": "3652:4:10" + }, + { + "kind": "number", + "nativeSrc": "3658:4:10", + "nodeType": "YulLiteral", + "src": "3658:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3648:3:10", + "nodeType": "YulIdentifier", + "src": "3648:3:10" + }, + "nativeSrc": "3648:15:10", + "nodeType": "YulFunctionCall", + "src": "3648:15:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "3640:4:10", + "nodeType": "YulIdentifier", + "src": "3640:4:10" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "3363:307:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "3413:6:10", + "nodeType": "YulTypedName", + "src": "3413:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "3424:4:10", + "nodeType": "YulTypedName", + "src": "3424:4:10", + "type": "" + } + ], + "src": "3363:307:10" + }, + { + "body": { + "nativeSrc": "3740:82:10", + "nodeType": "YulBlock", + "src": "3740:82:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3763:3:10", + "nodeType": "YulIdentifier", + "src": "3763:3:10" + }, + { + "name": "src", + "nativeSrc": "3768:3:10", + "nodeType": "YulIdentifier", + "src": "3768:3:10" + }, + { + "name": "length", + "nativeSrc": "3773:6:10", + "nodeType": "YulIdentifier", + "src": "3773:6:10" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3750:12:10", + "nodeType": "YulIdentifier", + "src": "3750:12:10" + }, + "nativeSrc": "3750:30:10", + "nodeType": "YulFunctionCall", + "src": "3750:30:10" + }, + "nativeSrc": "3750:30:10", + "nodeType": "YulExpressionStatement", + "src": "3750:30:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3800:3:10", + "nodeType": "YulIdentifier", + "src": "3800:3:10" + }, + { + "name": "length", + "nativeSrc": "3805:6:10", + "nodeType": "YulIdentifier", + "src": "3805:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3796:3:10", + "nodeType": "YulIdentifier", + "src": "3796:3:10" + }, + "nativeSrc": "3796:16:10", + "nodeType": "YulFunctionCall", + "src": "3796:16:10" + }, + { + "kind": "number", + "nativeSrc": "3814:1:10", + "nodeType": "YulLiteral", + "src": "3814:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3789:6:10", + "nodeType": "YulIdentifier", + "src": "3789:6:10" + }, + "nativeSrc": "3789:27:10", + "nodeType": "YulFunctionCall", + "src": "3789:27:10" + }, + "nativeSrc": "3789:27:10", + "nodeType": "YulExpressionStatement", + "src": "3789:27:10" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "3676:146:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3722:3:10", + "nodeType": "YulTypedName", + "src": "3722:3:10", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3727:3:10", + "nodeType": "YulTypedName", + "src": "3727:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3732:6:10", + "nodeType": "YulTypedName", + "src": "3732:6:10", + "type": "" + } + ], + "src": "3676:146:10" + }, + { + "body": { + "nativeSrc": "3911:340:10", + "nodeType": "YulBlock", + "src": "3911:340:10", + "statements": [ + { + "nativeSrc": "3921:74:10", + "nodeType": "YulAssignment", + "src": "3921:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3987:6:10", + "nodeType": "YulIdentifier", + "src": "3987:6:10" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "3946:40:10", + "nodeType": "YulIdentifier", + "src": "3946:40:10" + }, + "nativeSrc": "3946:48:10", + "nodeType": "YulFunctionCall", + "src": "3946:48:10" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "3930:15:10", + "nodeType": "YulIdentifier", + "src": "3930:15:10" + }, + "nativeSrc": "3930:65:10", + "nodeType": "YulFunctionCall", + "src": "3930:65:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3921:5:10", + "nodeType": "YulIdentifier", + "src": "3921:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "4011:5:10", + "nodeType": "YulIdentifier", + "src": "4011:5:10" + }, + { + "name": "length", + "nativeSrc": "4018:6:10", + "nodeType": "YulIdentifier", + "src": "4018:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4004:6:10", + "nodeType": "YulIdentifier", + "src": "4004:6:10" + }, + "nativeSrc": "4004:21:10", + "nodeType": "YulFunctionCall", + "src": "4004:21:10" + }, + "nativeSrc": "4004:21:10", + "nodeType": "YulExpressionStatement", + "src": "4004:21:10" + }, + { + "nativeSrc": "4034:27:10", + "nodeType": "YulVariableDeclaration", + "src": "4034:27:10", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "4049:5:10", + "nodeType": "YulIdentifier", + "src": "4049:5:10" + }, + { + "kind": "number", + "nativeSrc": "4056:4:10", + "nodeType": "YulLiteral", + "src": "4056:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4045:3:10", + "nodeType": "YulIdentifier", + "src": "4045:3:10" + }, + "nativeSrc": "4045:16:10", + "nodeType": "YulFunctionCall", + "src": "4045:16:10" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "4038:3:10", + "nodeType": "YulTypedName", + "src": "4038:3:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4099:83:10", + "nodeType": "YulBlock", + "src": "4099:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "4101:77:10", + "nodeType": "YulIdentifier", + "src": "4101:77:10" + }, + "nativeSrc": "4101:79:10", + "nodeType": "YulFunctionCall", + "src": "4101:79:10" + }, + "nativeSrc": "4101:79:10", + "nodeType": "YulExpressionStatement", + "src": "4101:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4080:3:10", + "nodeType": "YulIdentifier", + "src": "4080:3:10" + }, + { + "name": "length", + "nativeSrc": "4085:6:10", + "nodeType": "YulIdentifier", + "src": "4085:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4076:3:10", + "nodeType": "YulIdentifier", + "src": "4076:3:10" + }, + "nativeSrc": "4076:16:10", + "nodeType": "YulFunctionCall", + "src": "4076:16:10" + }, + { + "name": "end", + "nativeSrc": "4094:3:10", + "nodeType": "YulIdentifier", + "src": "4094:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4073:2:10", + "nodeType": "YulIdentifier", + "src": "4073:2:10" + }, + "nativeSrc": "4073:25:10", + "nodeType": "YulFunctionCall", + "src": "4073:25:10" + }, + "nativeSrc": "4070:112:10", + "nodeType": "YulIf", + "src": "4070:112:10" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "4228:3:10", + "nodeType": "YulIdentifier", + "src": "4228:3:10" + }, + { + "name": "dst", + "nativeSrc": "4233:3:10", + "nodeType": "YulIdentifier", + "src": "4233:3:10" + }, + { + "name": "length", + "nativeSrc": "4238:6:10", + "nodeType": "YulIdentifier", + "src": "4238:6:10" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "4191:36:10", + "nodeType": "YulIdentifier", + "src": "4191:36:10" + }, + "nativeSrc": "4191:54:10", + "nodeType": "YulFunctionCall", + "src": "4191:54:10" + }, + "nativeSrc": "4191:54:10", + "nodeType": "YulExpressionStatement", + "src": "4191:54:10" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "3828:423:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3884:3:10", + "nodeType": "YulTypedName", + "src": "3884:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3889:6:10", + "nodeType": "YulTypedName", + "src": "3889:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3897:3:10", + "nodeType": "YulTypedName", + "src": "3897:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3905:5:10", + "nodeType": "YulTypedName", + "src": "3905:5:10", + "type": "" + } + ], + "src": "3828:423:10" + }, + { + "body": { + "nativeSrc": "4331:277:10", + "nodeType": "YulBlock", + "src": "4331:277:10", + "statements": [ + { + "body": { + "nativeSrc": "4380:83:10", + "nodeType": "YulBlock", + "src": "4380:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "4382:77:10", + "nodeType": "YulIdentifier", + "src": "4382:77:10" + }, + "nativeSrc": "4382:79:10", + "nodeType": "YulFunctionCall", + "src": "4382:79:10" + }, + "nativeSrc": "4382:79:10", + "nodeType": "YulExpressionStatement", + "src": "4382:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4359:6:10", + "nodeType": "YulIdentifier", + "src": "4359:6:10" + }, + { + "kind": "number", + "nativeSrc": "4367:4:10", + "nodeType": "YulLiteral", + "src": "4367:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4355:3:10", + "nodeType": "YulIdentifier", + "src": "4355:3:10" + }, + "nativeSrc": "4355:17:10", + "nodeType": "YulFunctionCall", + "src": "4355:17:10" + }, + { + "name": "end", + "nativeSrc": "4374:3:10", + "nodeType": "YulIdentifier", + "src": "4374:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4351:3:10", + "nodeType": "YulIdentifier", + "src": "4351:3:10" + }, + "nativeSrc": "4351:27:10", + "nodeType": "YulFunctionCall", + "src": "4351:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4344:6:10", + "nodeType": "YulIdentifier", + "src": "4344:6:10" + }, + "nativeSrc": "4344:35:10", + "nodeType": "YulFunctionCall", + "src": "4344:35:10" + }, + "nativeSrc": "4341:122:10", + "nodeType": "YulIf", + "src": "4341:122:10" + }, + { + "nativeSrc": "4472:34:10", + "nodeType": "YulVariableDeclaration", + "src": "4472:34:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4499:6:10", + "nodeType": "YulIdentifier", + "src": "4499:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4486:12:10", + "nodeType": "YulIdentifier", + "src": "4486:12:10" + }, + "nativeSrc": "4486:20:10", + "nodeType": "YulFunctionCall", + "src": "4486:20:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "4476:6:10", + "nodeType": "YulTypedName", + "src": "4476:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "4515:87:10", + "nodeType": "YulAssignment", + "src": "4515:87:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4575:6:10", + "nodeType": "YulIdentifier", + "src": "4575:6:10" + }, + { + "kind": "number", + "nativeSrc": "4583:4:10", + "nodeType": "YulLiteral", + "src": "4583:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4571:3:10", + "nodeType": "YulIdentifier", + "src": "4571:3:10" + }, + "nativeSrc": "4571:17:10", + "nodeType": "YulFunctionCall", + "src": "4571:17:10" + }, + { + "name": "length", + "nativeSrc": "4590:6:10", + "nodeType": "YulIdentifier", + "src": "4590:6:10" + }, + { + "name": "end", + "nativeSrc": "4598:3:10", + "nodeType": "YulIdentifier", + "src": "4598:3:10" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "4524:46:10", + "nodeType": "YulIdentifier", + "src": "4524:46:10" + }, + "nativeSrc": "4524:78:10", + "nodeType": "YulFunctionCall", + "src": "4524:78:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "4515:5:10", + "nodeType": "YulIdentifier", + "src": "4515:5:10" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "4270:338:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4309:6:10", + "nodeType": "YulTypedName", + "src": "4309:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4317:3:10", + "nodeType": "YulTypedName", + "src": "4317:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "4325:5:10", + "nodeType": "YulTypedName", + "src": "4325:5:10", + "type": "" + } + ], + "src": "4270:338:10" + }, + { + "body": { + "nativeSrc": "4748:985:10", + "nodeType": "YulBlock", + "src": "4748:985:10", + "statements": [ + { + "body": { + "nativeSrc": "4795:83:10", + "nodeType": "YulBlock", + "src": "4795:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4797:77:10", + "nodeType": "YulIdentifier", + "src": "4797:77:10" + }, + "nativeSrc": "4797:79:10", + "nodeType": "YulFunctionCall", + "src": "4797:79:10" + }, + "nativeSrc": "4797:79:10", + "nodeType": "YulExpressionStatement", + "src": "4797:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4769:7:10", + "nodeType": "YulIdentifier", + "src": "4769:7:10" + }, + { + "name": "headStart", + "nativeSrc": "4778:9:10", + "nodeType": "YulIdentifier", + "src": "4778:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4765:3:10", + "nodeType": "YulIdentifier", + "src": "4765:3:10" + }, + "nativeSrc": "4765:23:10", + "nodeType": "YulFunctionCall", + "src": "4765:23:10" + }, + { + "kind": "number", + "nativeSrc": "4790:3:10", + "nodeType": "YulLiteral", + "src": "4790:3:10", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4761:3:10", + "nodeType": "YulIdentifier", + "src": "4761:3:10" + }, + "nativeSrc": "4761:33:10", + "nodeType": "YulFunctionCall", + "src": "4761:33:10" + }, + "nativeSrc": "4758:120:10", + "nodeType": "YulIf", + "src": "4758:120:10" + }, + { + "nativeSrc": "4888:117:10", + "nodeType": "YulBlock", + "src": "4888:117:10", + "statements": [ + { + "nativeSrc": "4903:15:10", + "nodeType": "YulVariableDeclaration", + "src": "4903:15:10", + "value": { + "kind": "number", + "nativeSrc": "4917:1:10", + "nodeType": "YulLiteral", + "src": "4917:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4907:6:10", + "nodeType": "YulTypedName", + "src": "4907:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "4932:63:10", + "nodeType": "YulAssignment", + "src": "4932:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4967:9:10", + "nodeType": "YulIdentifier", + "src": "4967:9:10" + }, + { + "name": "offset", + "nativeSrc": "4978:6:10", + "nodeType": "YulIdentifier", + "src": "4978:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4963:3:10", + "nodeType": "YulIdentifier", + "src": "4963:3:10" + }, + "nativeSrc": "4963:22:10", + "nodeType": "YulFunctionCall", + "src": "4963:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "4987:7:10", + "nodeType": "YulIdentifier", + "src": "4987:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4942:20:10", + "nodeType": "YulIdentifier", + "src": "4942:20:10" + }, + "nativeSrc": "4942:53:10", + "nodeType": "YulFunctionCall", + "src": "4942:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4932:6:10", + "nodeType": "YulIdentifier", + "src": "4932:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "5015:117:10", + "nodeType": "YulBlock", + "src": "5015:117:10", + "statements": [ + { + "nativeSrc": "5030:16:10", + "nodeType": "YulVariableDeclaration", + "src": "5030:16:10", + "value": { + "kind": "number", + "nativeSrc": "5044:2:10", + "nodeType": "YulLiteral", + "src": "5044:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5034:6:10", + "nodeType": "YulTypedName", + "src": "5034:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "5060:62:10", + "nodeType": "YulAssignment", + "src": "5060:62:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5094:9:10", + "nodeType": "YulIdentifier", + "src": "5094:9:10" + }, + { + "name": "offset", + "nativeSrc": "5105:6:10", + "nodeType": "YulIdentifier", + "src": "5105:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5090:3:10", + "nodeType": "YulIdentifier", + "src": "5090:3:10" + }, + "nativeSrc": "5090:22:10", + "nodeType": "YulFunctionCall", + "src": "5090:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "5114:7:10", + "nodeType": "YulIdentifier", + "src": "5114:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nativeSrc": "5070:19:10", + "nodeType": "YulIdentifier", + "src": "5070:19:10" + }, + "nativeSrc": "5070:52:10", + "nodeType": "YulFunctionCall", + "src": "5070:52:10" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5060:6:10", + "nodeType": "YulIdentifier", + "src": "5060:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "5142:287:10", + "nodeType": "YulBlock", + "src": "5142:287:10", + "statements": [ + { + "nativeSrc": "5157:46:10", + "nodeType": "YulVariableDeclaration", + "src": "5157:46:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5188:9:10", + "nodeType": "YulIdentifier", + "src": "5188:9:10" + }, + { + "kind": "number", + "nativeSrc": "5199:2:10", + "nodeType": "YulLiteral", + "src": "5199:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5184:3:10", + "nodeType": "YulIdentifier", + "src": "5184:3:10" + }, + "nativeSrc": "5184:18:10", + "nodeType": "YulFunctionCall", + "src": "5184:18:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5171:12:10", + "nodeType": "YulIdentifier", + "src": "5171:12:10" + }, + "nativeSrc": "5171:32:10", + "nodeType": "YulFunctionCall", + "src": "5171:32:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5161:6:10", + "nodeType": "YulTypedName", + "src": "5161:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5250:83:10", + "nodeType": "YulBlock", + "src": "5250:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "5252:77:10", + "nodeType": "YulIdentifier", + "src": "5252:77:10" + }, + "nativeSrc": "5252:79:10", + "nodeType": "YulFunctionCall", + "src": "5252:79:10" + }, + "nativeSrc": "5252:79:10", + "nodeType": "YulExpressionStatement", + "src": "5252:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5222:6:10", + "nodeType": "YulIdentifier", + "src": "5222:6:10" + }, + { + "kind": "number", + "nativeSrc": "5230:18:10", + "nodeType": "YulLiteral", + "src": "5230:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5219:2:10", + "nodeType": "YulIdentifier", + "src": "5219:2:10" + }, + "nativeSrc": "5219:30:10", + "nodeType": "YulFunctionCall", + "src": "5219:30:10" + }, + "nativeSrc": "5216:117:10", + "nodeType": "YulIf", + "src": "5216:117:10" + }, + { + "nativeSrc": "5347:72:10", + "nodeType": "YulAssignment", + "src": "5347:72:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5391:9:10", + "nodeType": "YulIdentifier", + "src": "5391:9:10" + }, + { + "name": "offset", + "nativeSrc": "5402:6:10", + "nodeType": "YulIdentifier", + "src": "5402:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5387:3:10", + "nodeType": "YulIdentifier", + "src": "5387:3:10" + }, + "nativeSrc": "5387:22:10", + "nodeType": "YulFunctionCall", + "src": "5387:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "5411:7:10", + "nodeType": "YulIdentifier", + "src": "5411:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "5357:29:10", + "nodeType": "YulIdentifier", + "src": "5357:29:10" + }, + "nativeSrc": "5357:62:10", + "nodeType": "YulFunctionCall", + "src": "5357:62:10" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5347:6:10", + "nodeType": "YulIdentifier", + "src": "5347:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "5439:287:10", + "nodeType": "YulBlock", + "src": "5439:287:10", + "statements": [ + { + "nativeSrc": "5454:46:10", + "nodeType": "YulVariableDeclaration", + "src": "5454:46:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5485:9:10", + "nodeType": "YulIdentifier", + "src": "5485:9:10" + }, + { + "kind": "number", + "nativeSrc": "5496:2:10", + "nodeType": "YulLiteral", + "src": "5496:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5481:3:10", + "nodeType": "YulIdentifier", + "src": "5481:3:10" + }, + "nativeSrc": "5481:18:10", + "nodeType": "YulFunctionCall", + "src": "5481:18:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5468:12:10", + "nodeType": "YulIdentifier", + "src": "5468:12:10" + }, + "nativeSrc": "5468:32:10", + "nodeType": "YulFunctionCall", + "src": "5468:32:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5458:6:10", + "nodeType": "YulTypedName", + "src": "5458:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5547:83:10", + "nodeType": "YulBlock", + "src": "5547:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "5549:77:10", + "nodeType": "YulIdentifier", + "src": "5549:77:10" + }, + "nativeSrc": "5549:79:10", + "nodeType": "YulFunctionCall", + "src": "5549:79:10" + }, + "nativeSrc": "5549:79:10", + "nodeType": "YulExpressionStatement", + "src": "5549:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5519:6:10", + "nodeType": "YulIdentifier", + "src": "5519:6:10" + }, + { + "kind": "number", + "nativeSrc": "5527:18:10", + "nodeType": "YulLiteral", + "src": "5527:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5516:2:10", + "nodeType": "YulIdentifier", + "src": "5516:2:10" + }, + "nativeSrc": "5516:30:10", + "nodeType": "YulFunctionCall", + "src": "5516:30:10" + }, + "nativeSrc": "5513:117:10", + "nodeType": "YulIf", + "src": "5513:117:10" + }, + { + "nativeSrc": "5644:72:10", + "nodeType": "YulAssignment", + "src": "5644:72:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5688:9:10", + "nodeType": "YulIdentifier", + "src": "5688:9:10" + }, + { + "name": "offset", + "nativeSrc": "5699:6:10", + "nodeType": "YulIdentifier", + "src": "5699:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5684:3:10", + "nodeType": "YulIdentifier", + "src": "5684:3:10" + }, + "nativeSrc": "5684:22:10", + "nodeType": "YulFunctionCall", + "src": "5684:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "5708:7:10", + "nodeType": "YulIdentifier", + "src": "5708:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "5654:29:10", + "nodeType": "YulIdentifier", + "src": "5654:29:10" + }, + "nativeSrc": "5654:62:10", + "nodeType": "YulFunctionCall", + "src": "5654:62:10" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "5644:6:10", + "nodeType": "YulIdentifier", + "src": "5644:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint64t_bytes_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "4614:1119:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4694:9:10", + "nodeType": "YulTypedName", + "src": "4694:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4705:7:10", + "nodeType": "YulTypedName", + "src": "4705:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4717:6:10", + "nodeType": "YulTypedName", + "src": "4717:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4725:6:10", + "nodeType": "YulTypedName", + "src": "4725:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4733:6:10", + "nodeType": "YulTypedName", + "src": "4733:6:10", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4741:6:10", + "nodeType": "YulTypedName", + "src": "4741:6:10", + "type": "" + } + ], + "src": "4614:1119:10" + }, + { + "body": { + "nativeSrc": "5784:32:10", + "nodeType": "YulBlock", + "src": "5784:32:10", + "statements": [ + { + "nativeSrc": "5794:16:10", + "nodeType": "YulAssignment", + "src": "5794:16:10", + "value": { + "name": "value", + "nativeSrc": "5805:5:10", + "nodeType": "YulIdentifier", + "src": "5805:5:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5794:7:10", + "nodeType": "YulIdentifier", + "src": "5794:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "5739:77:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5766:5:10", + "nodeType": "YulTypedName", + "src": "5766:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5776:7:10", + "nodeType": "YulTypedName", + "src": "5776:7:10", + "type": "" + } + ], + "src": "5739:77:10" + }, + { + "body": { + "nativeSrc": "5887:53:10", + "nodeType": "YulBlock", + "src": "5887:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5904:3:10", + "nodeType": "YulIdentifier", + "src": "5904:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5927:5:10", + "nodeType": "YulIdentifier", + "src": "5927:5:10" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5909:17:10", + "nodeType": "YulIdentifier", + "src": "5909:17:10" + }, + "nativeSrc": "5909:24:10", + "nodeType": "YulFunctionCall", + "src": "5909:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5897:6:10", + "nodeType": "YulIdentifier", + "src": "5897:6:10" + }, + "nativeSrc": "5897:37:10", + "nodeType": "YulFunctionCall", + "src": "5897:37:10" + }, + "nativeSrc": "5897:37:10", + "nodeType": "YulExpressionStatement", + "src": "5897:37:10" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5822:118:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5875:5:10", + "nodeType": "YulTypedName", + "src": "5875:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5882:3:10", + "nodeType": "YulTypedName", + "src": "5882:3:10", + "type": "" + } + ], + "src": "5822:118:10" + }, + { + "body": { + "nativeSrc": "6044:124:10", + "nodeType": "YulBlock", + "src": "6044:124:10", + "statements": [ + { + "nativeSrc": "6054:26:10", + "nodeType": "YulAssignment", + "src": "6054:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6066:9:10", + "nodeType": "YulIdentifier", + "src": "6066:9:10" + }, + { + "kind": "number", + "nativeSrc": "6077:2:10", + "nodeType": "YulLiteral", + "src": "6077:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6062:3:10", + "nodeType": "YulIdentifier", + "src": "6062:3:10" + }, + "nativeSrc": "6062:18:10", + "nodeType": "YulFunctionCall", + "src": "6062:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6054:4:10", + "nodeType": "YulIdentifier", + "src": "6054:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6134:6:10", + "nodeType": "YulIdentifier", + "src": "6134:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6147:9:10", + "nodeType": "YulIdentifier", + "src": "6147:9:10" + }, + { + "kind": "number", + "nativeSrc": "6158:1:10", + "nodeType": "YulLiteral", + "src": "6158:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6143:3:10", + "nodeType": "YulIdentifier", + "src": "6143:3:10" + }, + "nativeSrc": "6143:17:10", + "nodeType": "YulFunctionCall", + "src": "6143:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "6090:43:10", + "nodeType": "YulIdentifier", + "src": "6090:43:10" + }, + "nativeSrc": "6090:71:10", + "nodeType": "YulFunctionCall", + "src": "6090:71:10" + }, + "nativeSrc": "6090:71:10", + "nodeType": "YulExpressionStatement", + "src": "6090:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5946:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6016:9:10", + "nodeType": "YulTypedName", + "src": "6016:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6028:6:10", + "nodeType": "YulTypedName", + "src": "6028:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6039:4:10", + "nodeType": "YulTypedName", + "src": "6039:4:10", + "type": "" + } + ], + "src": "5946:222:10" + }, + { + "body": { + "nativeSrc": "6233:40:10", + "nodeType": "YulBlock", + "src": "6233:40:10", + "statements": [ + { + "nativeSrc": "6244:22:10", + "nodeType": "YulAssignment", + "src": "6244:22:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6260:5:10", + "nodeType": "YulIdentifier", + "src": "6260:5:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6254:5:10", + "nodeType": "YulIdentifier", + "src": "6254:5:10" + }, + "nativeSrc": "6254:12:10", + "nodeType": "YulFunctionCall", + "src": "6254:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "6244:6:10", + "nodeType": "YulIdentifier", + "src": "6244:6:10" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6174:99:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6216:5:10", + "nodeType": "YulTypedName", + "src": "6216:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "6226:6:10", + "nodeType": "YulTypedName", + "src": "6226:6:10", + "type": "" + } + ], + "src": "6174:99:10" + }, + { + "body": { + "nativeSrc": "6375:73:10", + "nodeType": "YulBlock", + "src": "6375:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6392:3:10", + "nodeType": "YulIdentifier", + "src": "6392:3:10" + }, + { + "name": "length", + "nativeSrc": "6397:6:10", + "nodeType": "YulIdentifier", + "src": "6397:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6385:6:10", + "nodeType": "YulIdentifier", + "src": "6385:6:10" + }, + "nativeSrc": "6385:19:10", + "nodeType": "YulFunctionCall", + "src": "6385:19:10" + }, + "nativeSrc": "6385:19:10", + "nodeType": "YulExpressionStatement", + "src": "6385:19:10" + }, + { + "nativeSrc": "6413:29:10", + "nodeType": "YulAssignment", + "src": "6413:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6432:3:10", + "nodeType": "YulIdentifier", + "src": "6432:3:10" + }, + { + "kind": "number", + "nativeSrc": "6437:4:10", + "nodeType": "YulLiteral", + "src": "6437:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6428:3:10", + "nodeType": "YulIdentifier", + "src": "6428:3:10" + }, + "nativeSrc": "6428:14:10", + "nodeType": "YulFunctionCall", + "src": "6428:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "6413:11:10", + "nodeType": "YulIdentifier", + "src": "6413:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6279:169:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6347:3:10", + "nodeType": "YulTypedName", + "src": "6347:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6352:6:10", + "nodeType": "YulTypedName", + "src": "6352:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "6363:11:10", + "nodeType": "YulTypedName", + "src": "6363:11:10", + "type": "" + } + ], + "src": "6279:169:10" + }, + { + "body": { + "nativeSrc": "6516:184:10", + "nodeType": "YulBlock", + "src": "6516:184:10", + "statements": [ + { + "nativeSrc": "6526:10:10", + "nodeType": "YulVariableDeclaration", + "src": "6526:10:10", + "value": { + "kind": "number", + "nativeSrc": "6535:1:10", + "nodeType": "YulLiteral", + "src": "6535:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "6530:1:10", + "nodeType": "YulTypedName", + "src": "6530:1:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6595:63:10", + "nodeType": "YulBlock", + "src": "6595:63:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "6620:3:10", + "nodeType": "YulIdentifier", + "src": "6620:3:10" + }, + { + "name": "i", + "nativeSrc": "6625:1:10", + "nodeType": "YulIdentifier", + "src": "6625:1:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6616:3:10", + "nodeType": "YulIdentifier", + "src": "6616:3:10" + }, + "nativeSrc": "6616:11:10", + "nodeType": "YulFunctionCall", + "src": "6616:11:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "6639:3:10", + "nodeType": "YulIdentifier", + "src": "6639:3:10" + }, + { + "name": "i", + "nativeSrc": "6644:1:10", + "nodeType": "YulIdentifier", + "src": "6644:1:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6635:3:10", + "nodeType": "YulIdentifier", + "src": "6635:3:10" + }, + "nativeSrc": "6635:11:10", + "nodeType": "YulFunctionCall", + "src": "6635:11:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6629:5:10", + "nodeType": "YulIdentifier", + "src": "6629:5:10" + }, + "nativeSrc": "6629:18:10", + "nodeType": "YulFunctionCall", + "src": "6629:18:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6609:6:10", + "nodeType": "YulIdentifier", + "src": "6609:6:10" + }, + "nativeSrc": "6609:39:10", + "nodeType": "YulFunctionCall", + "src": "6609:39:10" + }, + "nativeSrc": "6609:39:10", + "nodeType": "YulExpressionStatement", + "src": "6609:39:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "6556:1:10", + "nodeType": "YulIdentifier", + "src": "6556:1:10" + }, + { + "name": "length", + "nativeSrc": "6559:6:10", + "nodeType": "YulIdentifier", + "src": "6559:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6553:2:10", + "nodeType": "YulIdentifier", + "src": "6553:2:10" + }, + "nativeSrc": "6553:13:10", + "nodeType": "YulFunctionCall", + "src": "6553:13:10" + }, + "nativeSrc": "6545:113:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "6567:19:10", + "nodeType": "YulBlock", + "src": "6567:19:10", + "statements": [ + { + "nativeSrc": "6569:15:10", + "nodeType": "YulAssignment", + "src": "6569:15:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "6578:1:10", + "nodeType": "YulIdentifier", + "src": "6578:1:10" + }, + { + "kind": "number", + "nativeSrc": "6581:2:10", + "nodeType": "YulLiteral", + "src": "6581:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6574:3:10", + "nodeType": "YulIdentifier", + "src": "6574:3:10" + }, + "nativeSrc": "6574:10:10", + "nodeType": "YulFunctionCall", + "src": "6574:10:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "6569:1:10", + "nodeType": "YulIdentifier", + "src": "6569:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "6549:3:10", + "nodeType": "YulBlock", + "src": "6549:3:10", + "statements": [] + }, + "src": "6545:113:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "6678:3:10", + "nodeType": "YulIdentifier", + "src": "6678:3:10" + }, + { + "name": "length", + "nativeSrc": "6683:6:10", + "nodeType": "YulIdentifier", + "src": "6683:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6674:3:10", + "nodeType": "YulIdentifier", + "src": "6674:3:10" + }, + "nativeSrc": "6674:16:10", + "nodeType": "YulFunctionCall", + "src": "6674:16:10" + }, + { + "kind": "number", + "nativeSrc": "6692:1:10", + "nodeType": "YulLiteral", + "src": "6692:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6667:6:10", + "nodeType": "YulIdentifier", + "src": "6667:6:10" + }, + "nativeSrc": "6667:27:10", + "nodeType": "YulFunctionCall", + "src": "6667:27:10" + }, + "nativeSrc": "6667:27:10", + "nodeType": "YulExpressionStatement", + "src": "6667:27:10" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6454:246:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "6498:3:10", + "nodeType": "YulTypedName", + "src": "6498:3:10", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "6503:3:10", + "nodeType": "YulTypedName", + "src": "6503:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6508:6:10", + "nodeType": "YulTypedName", + "src": "6508:6:10", + "type": "" + } + ], + "src": "6454:246:10" + }, + { + "body": { + "nativeSrc": "6798:285:10", + "nodeType": "YulBlock", + "src": "6798:285:10", + "statements": [ + { + "nativeSrc": "6808:53:10", + "nodeType": "YulVariableDeclaration", + "src": "6808:53:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6855:5:10", + "nodeType": "YulIdentifier", + "src": "6855:5:10" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6822:32:10", + "nodeType": "YulIdentifier", + "src": "6822:32:10" + }, + "nativeSrc": "6822:39:10", + "nodeType": "YulFunctionCall", + "src": "6822:39:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "6812:6:10", + "nodeType": "YulTypedName", + "src": "6812:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "6870:78:10", + "nodeType": "YulAssignment", + "src": "6870:78:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6936:3:10", + "nodeType": "YulIdentifier", + "src": "6936:3:10" + }, + { + "name": "length", + "nativeSrc": "6941:6:10", + "nodeType": "YulIdentifier", + "src": "6941:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6877:58:10", + "nodeType": "YulIdentifier", + "src": "6877:58:10" + }, + "nativeSrc": "6877:71:10", + "nodeType": "YulFunctionCall", + "src": "6877:71:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "6870:3:10", + "nodeType": "YulIdentifier", + "src": "6870:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6996:5:10", + "nodeType": "YulIdentifier", + "src": "6996:5:10" + }, + { + "kind": "number", + "nativeSrc": "7003:4:10", + "nodeType": "YulLiteral", + "src": "7003:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6992:3:10", + "nodeType": "YulIdentifier", + "src": "6992:3:10" + }, + "nativeSrc": "6992:16:10", + "nodeType": "YulFunctionCall", + "src": "6992:16:10" + }, + { + "name": "pos", + "nativeSrc": "7010:3:10", + "nodeType": "YulIdentifier", + "src": "7010:3:10" + }, + { + "name": "length", + "nativeSrc": "7015:6:10", + "nodeType": "YulIdentifier", + "src": "7015:6:10" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6957:34:10", + "nodeType": "YulIdentifier", + "src": "6957:34:10" + }, + "nativeSrc": "6957:65:10", + "nodeType": "YulFunctionCall", + "src": "6957:65:10" + }, + "nativeSrc": "6957:65:10", + "nodeType": "YulExpressionStatement", + "src": "6957:65:10" + }, + { + "nativeSrc": "7031:46:10", + "nodeType": "YulAssignment", + "src": "7031:46:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7042:3:10", + "nodeType": "YulIdentifier", + "src": "7042:3:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7069:6:10", + "nodeType": "YulIdentifier", + "src": "7069:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7047:21:10", + "nodeType": "YulIdentifier", + "src": "7047:21:10" + }, + "nativeSrc": "7047:29:10", + "nodeType": "YulFunctionCall", + "src": "7047:29:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7038:3:10", + "nodeType": "YulIdentifier", + "src": "7038:3:10" + }, + "nativeSrc": "7038:39:10", + "nodeType": "YulFunctionCall", + "src": "7038:39:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "7031:3:10", + "nodeType": "YulIdentifier", + "src": "7031:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6706:377:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6779:5:10", + "nodeType": "YulTypedName", + "src": "6779:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6786:3:10", + "nodeType": "YulTypedName", + "src": "6786:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6794:3:10", + "nodeType": "YulTypedName", + "src": "6794:3:10", + "type": "" + } + ], + "src": "6706:377:10" + }, + { + "body": { + "nativeSrc": "7207:195:10", + "nodeType": "YulBlock", + "src": "7207:195:10", + "statements": [ + { + "nativeSrc": "7217:26:10", + "nodeType": "YulAssignment", + "src": "7217:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7229:9:10", + "nodeType": "YulIdentifier", + "src": "7229:9:10" + }, + { + "kind": "number", + "nativeSrc": "7240:2:10", + "nodeType": "YulLiteral", + "src": "7240:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7225:3:10", + "nodeType": "YulIdentifier", + "src": "7225:3:10" + }, + "nativeSrc": "7225:18:10", + "nodeType": "YulFunctionCall", + "src": "7225:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7217:4:10", + "nodeType": "YulIdentifier", + "src": "7217:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7264:9:10", + "nodeType": "YulIdentifier", + "src": "7264:9:10" + }, + { + "kind": "number", + "nativeSrc": "7275:1:10", + "nodeType": "YulLiteral", + "src": "7275:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7260:3:10", + "nodeType": "YulIdentifier", + "src": "7260:3:10" + }, + "nativeSrc": "7260:17:10", + "nodeType": "YulFunctionCall", + "src": "7260:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7283:4:10", + "nodeType": "YulIdentifier", + "src": "7283:4:10" + }, + { + "name": "headStart", + "nativeSrc": "7289:9:10", + "nodeType": "YulIdentifier", + "src": "7289:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7279:3:10", + "nodeType": "YulIdentifier", + "src": "7279:3:10" + }, + "nativeSrc": "7279:20:10", + "nodeType": "YulFunctionCall", + "src": "7279:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7253:6:10", + "nodeType": "YulIdentifier", + "src": "7253:6:10" + }, + "nativeSrc": "7253:47:10", + "nodeType": "YulFunctionCall", + "src": "7253:47:10" + }, + "nativeSrc": "7253:47:10", + "nodeType": "YulExpressionStatement", + "src": "7253:47:10" + }, + { + "nativeSrc": "7309:86:10", + "nodeType": "YulAssignment", + "src": "7309:86:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7381:6:10", + "nodeType": "YulIdentifier", + "src": "7381:6:10" + }, + { + "name": "tail", + "nativeSrc": "7390:4:10", + "nodeType": "YulIdentifier", + "src": "7390:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7317:63:10", + "nodeType": "YulIdentifier", + "src": "7317:63:10" + }, + "nativeSrc": "7317:78:10", + "nodeType": "YulFunctionCall", + "src": "7317:78:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7309:4:10", + "nodeType": "YulIdentifier", + "src": "7309:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7089:313:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7179:9:10", + "nodeType": "YulTypedName", + "src": "7179:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7191:6:10", + "nodeType": "YulTypedName", + "src": "7191:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7202:4:10", + "nodeType": "YulTypedName", + "src": "7202:4:10", + "type": "" + } + ], + "src": "7089:313:10" + }, + { + "body": { + "nativeSrc": "7474:263:10", + "nodeType": "YulBlock", + "src": "7474:263:10", + "statements": [ + { + "body": { + "nativeSrc": "7520:83:10", + "nodeType": "YulBlock", + "src": "7520:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "7522:77:10", + "nodeType": "YulIdentifier", + "src": "7522:77:10" + }, + "nativeSrc": "7522:79:10", + "nodeType": "YulFunctionCall", + "src": "7522:79:10" + }, + "nativeSrc": "7522:79:10", + "nodeType": "YulExpressionStatement", + "src": "7522:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7495:7:10", + "nodeType": "YulIdentifier", + "src": "7495:7:10" + }, + { + "name": "headStart", + "nativeSrc": "7504:9:10", + "nodeType": "YulIdentifier", + "src": "7504:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7491:3:10", + "nodeType": "YulIdentifier", + "src": "7491:3:10" + }, + "nativeSrc": "7491:23:10", + "nodeType": "YulFunctionCall", + "src": "7491:23:10" + }, + { + "kind": "number", + "nativeSrc": "7516:2:10", + "nodeType": "YulLiteral", + "src": "7516:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7487:3:10", + "nodeType": "YulIdentifier", + "src": "7487:3:10" + }, + "nativeSrc": "7487:32:10", + "nodeType": "YulFunctionCall", + "src": "7487:32:10" + }, + "nativeSrc": "7484:119:10", + "nodeType": "YulIf", + "src": "7484:119:10" + }, + { + "nativeSrc": "7613:117:10", + "nodeType": "YulBlock", + "src": "7613:117:10", + "statements": [ + { + "nativeSrc": "7628:15:10", + "nodeType": "YulVariableDeclaration", + "src": "7628:15:10", + "value": { + "kind": "number", + "nativeSrc": "7642:1:10", + "nodeType": "YulLiteral", + "src": "7642:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7632:6:10", + "nodeType": "YulTypedName", + "src": "7632:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "7657:63:10", + "nodeType": "YulAssignment", + "src": "7657:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7692:9:10", + "nodeType": "YulIdentifier", + "src": "7692:9:10" + }, + { + "name": "offset", + "nativeSrc": "7703:6:10", + "nodeType": "YulIdentifier", + "src": "7703:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7688:3:10", + "nodeType": "YulIdentifier", + "src": "7688:3:10" + }, + "nativeSrc": "7688:22:10", + "nodeType": "YulFunctionCall", + "src": "7688:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "7712:7:10", + "nodeType": "YulIdentifier", + "src": "7712:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "7667:20:10", + "nodeType": "YulIdentifier", + "src": "7667:20:10" + }, + "nativeSrc": "7667:53:10", + "nodeType": "YulFunctionCall", + "src": "7667:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7657:6:10", + "nodeType": "YulIdentifier", + "src": "7657:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "7408:329:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7444:9:10", + "nodeType": "YulTypedName", + "src": "7444:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7455:7:10", + "nodeType": "YulTypedName", + "src": "7455:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7467:6:10", + "nodeType": "YulTypedName", + "src": "7467:6:10", + "type": "" + } + ], + "src": "7408:329:10" + }, + { + "body": { + "nativeSrc": "7832:28:10", + "nodeType": "YulBlock", + "src": "7832:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7849:1:10", + "nodeType": "YulLiteral", + "src": "7849:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7852:1:10", + "nodeType": "YulLiteral", + "src": "7852:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7842:6:10", + "nodeType": "YulIdentifier", + "src": "7842:6:10" + }, + "nativeSrc": "7842:12:10", + "nodeType": "YulFunctionCall", + "src": "7842:12:10" + }, + "nativeSrc": "7842:12:10", + "nodeType": "YulExpressionStatement", + "src": "7842:12:10" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "7743:117:10", + "nodeType": "YulFunctionDefinition", + "src": "7743:117:10" + }, + { + "body": { + "nativeSrc": "7955:28:10", + "nodeType": "YulBlock", + "src": "7955:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7972:1:10", + "nodeType": "YulLiteral", + "src": "7972:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7975:1:10", + "nodeType": "YulLiteral", + "src": "7975:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7965:6:10", + "nodeType": "YulIdentifier", + "src": "7965:6:10" + }, + "nativeSrc": "7965:12:10", + "nodeType": "YulFunctionCall", + "src": "7965:12:10" + }, + "nativeSrc": "7965:12:10", + "nodeType": "YulExpressionStatement", + "src": "7965:12:10" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "7866:117:10", + "nodeType": "YulFunctionDefinition", + "src": "7866:117:10" + }, + { + "body": { + "nativeSrc": "8078:478:10", + "nodeType": "YulBlock", + "src": "8078:478:10", + "statements": [ + { + "body": { + "nativeSrc": "8127:83:10", + "nodeType": "YulBlock", + "src": "8127:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8129:77:10", + "nodeType": "YulIdentifier", + "src": "8129:77:10" + }, + "nativeSrc": "8129:79:10", + "nodeType": "YulFunctionCall", + "src": "8129:79:10" + }, + "nativeSrc": "8129:79:10", + "nodeType": "YulExpressionStatement", + "src": "8129:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8106:6:10", + "nodeType": "YulIdentifier", + "src": "8106:6:10" + }, + { + "kind": "number", + "nativeSrc": "8114:4:10", + "nodeType": "YulLiteral", + "src": "8114:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8102:3:10", + "nodeType": "YulIdentifier", + "src": "8102:3:10" + }, + "nativeSrc": "8102:17:10", + "nodeType": "YulFunctionCall", + "src": "8102:17:10" + }, + { + "name": "end", + "nativeSrc": "8121:3:10", + "nodeType": "YulIdentifier", + "src": "8121:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8098:3:10", + "nodeType": "YulIdentifier", + "src": "8098:3:10" + }, + "nativeSrc": "8098:27:10", + "nodeType": "YulFunctionCall", + "src": "8098:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8091:6:10", + "nodeType": "YulIdentifier", + "src": "8091:6:10" + }, + "nativeSrc": "8091:35:10", + "nodeType": "YulFunctionCall", + "src": "8091:35:10" + }, + "nativeSrc": "8088:122:10", + "nodeType": "YulIf", + "src": "8088:122:10" + }, + { + "nativeSrc": "8219:30:10", + "nodeType": "YulAssignment", + "src": "8219:30:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8242:6:10", + "nodeType": "YulIdentifier", + "src": "8242:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8229:12:10", + "nodeType": "YulIdentifier", + "src": "8229:12:10" + }, + "nativeSrc": "8229:20:10", + "nodeType": "YulFunctionCall", + "src": "8229:20:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "8219:6:10", + "nodeType": "YulIdentifier", + "src": "8219:6:10" + } + ] + }, + { + "body": { + "nativeSrc": "8292:83:10", + "nodeType": "YulBlock", + "src": "8292:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "8294:77:10", + "nodeType": "YulIdentifier", + "src": "8294:77:10" + }, + "nativeSrc": "8294:79:10", + "nodeType": "YulFunctionCall", + "src": "8294:79:10" + }, + "nativeSrc": "8294:79:10", + "nodeType": "YulExpressionStatement", + "src": "8294:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8264:6:10", + "nodeType": "YulIdentifier", + "src": "8264:6:10" + }, + { + "kind": "number", + "nativeSrc": "8272:18:10", + "nodeType": "YulLiteral", + "src": "8272:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8261:2:10", + "nodeType": "YulIdentifier", + "src": "8261:2:10" + }, + "nativeSrc": "8261:30:10", + "nodeType": "YulFunctionCall", + "src": "8261:30:10" + }, + "nativeSrc": "8258:117:10", + "nodeType": "YulIf", + "src": "8258:117:10" + }, + { + "nativeSrc": "8384:29:10", + "nodeType": "YulAssignment", + "src": "8384:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8400:6:10", + "nodeType": "YulIdentifier", + "src": "8400:6:10" + }, + { + "kind": "number", + "nativeSrc": "8408:4:10", + "nodeType": "YulLiteral", + "src": "8408:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8396:3:10", + "nodeType": "YulIdentifier", + "src": "8396:3:10" + }, + "nativeSrc": "8396:17:10", + "nodeType": "YulFunctionCall", + "src": "8396:17:10" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "8384:8:10", + "nodeType": "YulIdentifier", + "src": "8384:8:10" + } + ] + }, + { + "body": { + "nativeSrc": "8467:83:10", + "nodeType": "YulBlock", + "src": "8467:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "8469:77:10", + "nodeType": "YulIdentifier", + "src": "8469:77:10" + }, + "nativeSrc": "8469:79:10", + "nodeType": "YulFunctionCall", + "src": "8469:79:10" + }, + "nativeSrc": "8469:79:10", + "nodeType": "YulExpressionStatement", + "src": "8469:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "8432:8:10", + "nodeType": "YulIdentifier", + "src": "8432:8:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8446:6:10", + "nodeType": "YulIdentifier", + "src": "8446:6:10" + }, + { + "kind": "number", + "nativeSrc": "8454:4:10", + "nodeType": "YulLiteral", + "src": "8454:4:10", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "8442:3:10", + "nodeType": "YulIdentifier", + "src": "8442:3:10" + }, + "nativeSrc": "8442:17:10", + "nodeType": "YulFunctionCall", + "src": "8442:17:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8428:3:10", + "nodeType": "YulIdentifier", + "src": "8428:3:10" + }, + "nativeSrc": "8428:32:10", + "nodeType": "YulFunctionCall", + "src": "8428:32:10" + }, + { + "name": "end", + "nativeSrc": "8462:3:10", + "nodeType": "YulIdentifier", + "src": "8462:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8425:2:10", + "nodeType": "YulIdentifier", + "src": "8425:2:10" + }, + "nativeSrc": "8425:41:10", + "nodeType": "YulFunctionCall", + "src": "8425:41:10" + }, + "nativeSrc": "8422:128:10", + "nodeType": "YulIf", + "src": "8422:128:10" + } + ] + }, + "name": "abi_decode_t_string_calldata_ptr", + "nativeSrc": "8003:553:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8045:6:10", + "nodeType": "YulTypedName", + "src": "8045:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8053:3:10", + "nodeType": "YulTypedName", + "src": "8053:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "8061:8:10", + "nodeType": "YulTypedName", + "src": "8061:8:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8071:6:10", + "nodeType": "YulTypedName", + "src": "8071:6:10", + "type": "" + } + ], + "src": "8003:553:10" + }, + { + "body": { + "nativeSrc": "8648:443:10", + "nodeType": "YulBlock", + "src": "8648:443:10", + "statements": [ + { + "body": { + "nativeSrc": "8694:83:10", + "nodeType": "YulBlock", + "src": "8694:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8696:77:10", + "nodeType": "YulIdentifier", + "src": "8696:77:10" + }, + "nativeSrc": "8696:79:10", + "nodeType": "YulFunctionCall", + "src": "8696:79:10" + }, + "nativeSrc": "8696:79:10", + "nodeType": "YulExpressionStatement", + "src": "8696:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8669:7:10", + "nodeType": "YulIdentifier", + "src": "8669:7:10" + }, + { + "name": "headStart", + "nativeSrc": "8678:9:10", + "nodeType": "YulIdentifier", + "src": "8678:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8665:3:10", + "nodeType": "YulIdentifier", + "src": "8665:3:10" + }, + "nativeSrc": "8665:23:10", + "nodeType": "YulFunctionCall", + "src": "8665:23:10" + }, + { + "kind": "number", + "nativeSrc": "8690:2:10", + "nodeType": "YulLiteral", + "src": "8690:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8661:3:10", + "nodeType": "YulIdentifier", + "src": "8661:3:10" + }, + "nativeSrc": "8661:32:10", + "nodeType": "YulFunctionCall", + "src": "8661:32:10" + }, + "nativeSrc": "8658:119:10", + "nodeType": "YulIf", + "src": "8658:119:10" + }, + { + "nativeSrc": "8787:297:10", + "nodeType": "YulBlock", + "src": "8787:297:10", + "statements": [ + { + "nativeSrc": "8802:45:10", + "nodeType": "YulVariableDeclaration", + "src": "8802:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8833:9:10", + "nodeType": "YulIdentifier", + "src": "8833:9:10" + }, + { + "kind": "number", + "nativeSrc": "8844:1:10", + "nodeType": "YulLiteral", + "src": "8844:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8829:3:10", + "nodeType": "YulIdentifier", + "src": "8829:3:10" + }, + "nativeSrc": "8829:17:10", + "nodeType": "YulFunctionCall", + "src": "8829:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8816:12:10", + "nodeType": "YulIdentifier", + "src": "8816:12:10" + }, + "nativeSrc": "8816:31:10", + "nodeType": "YulFunctionCall", + "src": "8816:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8806:6:10", + "nodeType": "YulTypedName", + "src": "8806:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8894:83:10", + "nodeType": "YulBlock", + "src": "8894:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "8896:77:10", + "nodeType": "YulIdentifier", + "src": "8896:77:10" + }, + "nativeSrc": "8896:79:10", + "nodeType": "YulFunctionCall", + "src": "8896:79:10" + }, + "nativeSrc": "8896:79:10", + "nodeType": "YulExpressionStatement", + "src": "8896:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8866:6:10", + "nodeType": "YulIdentifier", + "src": "8866:6:10" + }, + { + "kind": "number", + "nativeSrc": "8874:18:10", + "nodeType": "YulLiteral", + "src": "8874:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8863:2:10", + "nodeType": "YulIdentifier", + "src": "8863:2:10" + }, + "nativeSrc": "8863:30:10", + "nodeType": "YulFunctionCall", + "src": "8863:30:10" + }, + "nativeSrc": "8860:117:10", + "nodeType": "YulIf", + "src": "8860:117:10" + }, + { + "nativeSrc": "8991:83:10", + "nodeType": "YulAssignment", + "src": "8991:83:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9046:9:10", + "nodeType": "YulIdentifier", + "src": "9046:9:10" + }, + { + "name": "offset", + "nativeSrc": "9057:6:10", + "nodeType": "YulIdentifier", + "src": "9057:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9042:3:10", + "nodeType": "YulIdentifier", + "src": "9042:3:10" + }, + "nativeSrc": "9042:22:10", + "nodeType": "YulFunctionCall", + "src": "9042:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "9066:7:10", + "nodeType": "YulIdentifier", + "src": "9066:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_string_calldata_ptr", + "nativeSrc": "9009:32:10", + "nodeType": "YulIdentifier", + "src": "9009:32:10" + }, + "nativeSrc": "9009:65:10", + "nodeType": "YulFunctionCall", + "src": "9009:65:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8991:6:10", + "nodeType": "YulIdentifier", + "src": "8991:6:10" + }, + { + "name": "value1", + "nativeSrc": "8999:6:10", + "nodeType": "YulIdentifier", + "src": "8999:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_calldata_ptr", + "nativeSrc": "8562:529:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8610:9:10", + "nodeType": "YulTypedName", + "src": "8610:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8621:7:10", + "nodeType": "YulTypedName", + "src": "8621:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8633:6:10", + "nodeType": "YulTypedName", + "src": "8633:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8641:6:10", + "nodeType": "YulTypedName", + "src": "8641:6:10", + "type": "" + } + ], + "src": "8562:529:10" + }, + { + "body": { + "nativeSrc": "9162:53:10", + "nodeType": "YulBlock", + "src": "9162:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9179:3:10", + "nodeType": "YulIdentifier", + "src": "9179:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9202:5:10", + "nodeType": "YulIdentifier", + "src": "9202:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "9184:17:10", + "nodeType": "YulIdentifier", + "src": "9184:17:10" + }, + "nativeSrc": "9184:24:10", + "nodeType": "YulFunctionCall", + "src": "9184:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9172:6:10", + "nodeType": "YulIdentifier", + "src": "9172:6:10" + }, + "nativeSrc": "9172:37:10", + "nodeType": "YulFunctionCall", + "src": "9172:37:10" + }, + "nativeSrc": "9172:37:10", + "nodeType": "YulExpressionStatement", + "src": "9172:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "9097:118:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "9150:5:10", + "nodeType": "YulTypedName", + "src": "9150:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "9157:3:10", + "nodeType": "YulTypedName", + "src": "9157:3:10", + "type": "" + } + ], + "src": "9097:118:10" + }, + { + "body": { + "nativeSrc": "9319:124:10", + "nodeType": "YulBlock", + "src": "9319:124:10", + "statements": [ + { + "nativeSrc": "9329:26:10", + "nodeType": "YulAssignment", + "src": "9329:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9341:9:10", + "nodeType": "YulIdentifier", + "src": "9341:9:10" + }, + { + "kind": "number", + "nativeSrc": "9352:2:10", + "nodeType": "YulLiteral", + "src": "9352:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9337:3:10", + "nodeType": "YulIdentifier", + "src": "9337:3:10" + }, + "nativeSrc": "9337:18:10", + "nodeType": "YulFunctionCall", + "src": "9337:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9329:4:10", + "nodeType": "YulIdentifier", + "src": "9329:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9409:6:10", + "nodeType": "YulIdentifier", + "src": "9409:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9422:9:10", + "nodeType": "YulIdentifier", + "src": "9422:9:10" + }, + { + "kind": "number", + "nativeSrc": "9433:1:10", + "nodeType": "YulLiteral", + "src": "9433:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9418:3:10", + "nodeType": "YulIdentifier", + "src": "9418:3:10" + }, + "nativeSrc": "9418:17:10", + "nodeType": "YulFunctionCall", + "src": "9418:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "9365:43:10", + "nodeType": "YulIdentifier", + "src": "9365:43:10" + }, + "nativeSrc": "9365:71:10", + "nodeType": "YulFunctionCall", + "src": "9365:71:10" + }, + "nativeSrc": "9365:71:10", + "nodeType": "YulExpressionStatement", + "src": "9365:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "9221:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9291:9:10", + "nodeType": "YulTypedName", + "src": "9291:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9303:6:10", + "nodeType": "YulTypedName", + "src": "9303:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9314:4:10", + "nodeType": "YulTypedName", + "src": "9314:4:10", + "type": "" + } + ], + "src": "9221:222:10" + }, + { + "body": { + "nativeSrc": "9536:478:10", + "nodeType": "YulBlock", + "src": "9536:478:10", + "statements": [ + { + "body": { + "nativeSrc": "9585:83:10", + "nodeType": "YulBlock", + "src": "9585:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "9587:77:10", + "nodeType": "YulIdentifier", + "src": "9587:77:10" + }, + "nativeSrc": "9587:79:10", + "nodeType": "YulFunctionCall", + "src": "9587:79:10" + }, + "nativeSrc": "9587:79:10", + "nodeType": "YulExpressionStatement", + "src": "9587:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9564:6:10", + "nodeType": "YulIdentifier", + "src": "9564:6:10" + }, + { + "kind": "number", + "nativeSrc": "9572:4:10", + "nodeType": "YulLiteral", + "src": "9572:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9560:3:10", + "nodeType": "YulIdentifier", + "src": "9560:3:10" + }, + "nativeSrc": "9560:17:10", + "nodeType": "YulFunctionCall", + "src": "9560:17:10" + }, + { + "name": "end", + "nativeSrc": "9579:3:10", + "nodeType": "YulIdentifier", + "src": "9579:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9556:3:10", + "nodeType": "YulIdentifier", + "src": "9556:3:10" + }, + "nativeSrc": "9556:27:10", + "nodeType": "YulFunctionCall", + "src": "9556:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9549:6:10", + "nodeType": "YulIdentifier", + "src": "9549:6:10" + }, + "nativeSrc": "9549:35:10", + "nodeType": "YulFunctionCall", + "src": "9549:35:10" + }, + "nativeSrc": "9546:122:10", + "nodeType": "YulIf", + "src": "9546:122:10" + }, + { + "nativeSrc": "9677:30:10", + "nodeType": "YulAssignment", + "src": "9677:30:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9700:6:10", + "nodeType": "YulIdentifier", + "src": "9700:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9687:12:10", + "nodeType": "YulIdentifier", + "src": "9687:12:10" + }, + "nativeSrc": "9687:20:10", + "nodeType": "YulFunctionCall", + "src": "9687:20:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "9677:6:10", + "nodeType": "YulIdentifier", + "src": "9677:6:10" + } + ] + }, + { + "body": { + "nativeSrc": "9750:83:10", + "nodeType": "YulBlock", + "src": "9750:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "9752:77:10", + "nodeType": "YulIdentifier", + "src": "9752:77:10" + }, + "nativeSrc": "9752:79:10", + "nodeType": "YulFunctionCall", + "src": "9752:79:10" + }, + "nativeSrc": "9752:79:10", + "nodeType": "YulExpressionStatement", + "src": "9752:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9722:6:10", + "nodeType": "YulIdentifier", + "src": "9722:6:10" + }, + { + "kind": "number", + "nativeSrc": "9730:18:10", + "nodeType": "YulLiteral", + "src": "9730:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9719:2:10", + "nodeType": "YulIdentifier", + "src": "9719:2:10" + }, + "nativeSrc": "9719:30:10", + "nodeType": "YulFunctionCall", + "src": "9719:30:10" + }, + "nativeSrc": "9716:117:10", + "nodeType": "YulIf", + "src": "9716:117:10" + }, + { + "nativeSrc": "9842:29:10", + "nodeType": "YulAssignment", + "src": "9842:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9858:6:10", + "nodeType": "YulIdentifier", + "src": "9858:6:10" + }, + { + "kind": "number", + "nativeSrc": "9866:4:10", + "nodeType": "YulLiteral", + "src": "9866:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9854:3:10", + "nodeType": "YulIdentifier", + "src": "9854:3:10" + }, + "nativeSrc": "9854:17:10", + "nodeType": "YulFunctionCall", + "src": "9854:17:10" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "9842:8:10", + "nodeType": "YulIdentifier", + "src": "9842:8:10" + } + ] + }, + { + "body": { + "nativeSrc": "9925:83:10", + "nodeType": "YulBlock", + "src": "9925:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "9927:77:10", + "nodeType": "YulIdentifier", + "src": "9927:77:10" + }, + "nativeSrc": "9927:79:10", + "nodeType": "YulFunctionCall", + "src": "9927:79:10" + }, + "nativeSrc": "9927:79:10", + "nodeType": "YulExpressionStatement", + "src": "9927:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "9890:8:10", + "nodeType": "YulIdentifier", + "src": "9890:8:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "9904:6:10", + "nodeType": "YulIdentifier", + "src": "9904:6:10" + }, + { + "kind": "number", + "nativeSrc": "9912:4:10", + "nodeType": "YulLiteral", + "src": "9912:4:10", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "9900:3:10", + "nodeType": "YulIdentifier", + "src": "9900:3:10" + }, + "nativeSrc": "9900:17:10", + "nodeType": "YulFunctionCall", + "src": "9900:17:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9886:3:10", + "nodeType": "YulIdentifier", + "src": "9886:3:10" + }, + "nativeSrc": "9886:32:10", + "nodeType": "YulFunctionCall", + "src": "9886:32:10" + }, + { + "name": "end", + "nativeSrc": "9920:3:10", + "nodeType": "YulIdentifier", + "src": "9920:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9883:2:10", + "nodeType": "YulIdentifier", + "src": "9883:2:10" + }, + "nativeSrc": "9883:41:10", + "nodeType": "YulFunctionCall", + "src": "9883:41:10" + }, + "nativeSrc": "9880:128:10", + "nodeType": "YulIf", + "src": "9880:128:10" + } + ] + }, + "name": "abi_decode_t_bytes_calldata_ptr", + "nativeSrc": "9462:552:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "9503:6:10", + "nodeType": "YulTypedName", + "src": "9503:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9511:3:10", + "nodeType": "YulTypedName", + "src": "9511:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "9519:8:10", + "nodeType": "YulTypedName", + "src": "9519:8:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9529:6:10", + "nodeType": "YulTypedName", + "src": "9529:6:10", + "type": "" + } + ], + "src": "9462:552:10" + }, + { + "body": { + "nativeSrc": "10141:749:10", + "nodeType": "YulBlock", + "src": "10141:749:10", + "statements": [ + { + "body": { + "nativeSrc": "10187:83:10", + "nodeType": "YulBlock", + "src": "10187:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10189:77:10", + "nodeType": "YulIdentifier", + "src": "10189:77:10" + }, + "nativeSrc": "10189:79:10", + "nodeType": "YulFunctionCall", + "src": "10189:79:10" + }, + "nativeSrc": "10189:79:10", + "nodeType": "YulExpressionStatement", + "src": "10189:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10162:7:10", + "nodeType": "YulIdentifier", + "src": "10162:7:10" + }, + { + "name": "headStart", + "nativeSrc": "10171:9:10", + "nodeType": "YulIdentifier", + "src": "10171:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10158:3:10", + "nodeType": "YulIdentifier", + "src": "10158:3:10" + }, + "nativeSrc": "10158:23:10", + "nodeType": "YulFunctionCall", + "src": "10158:23:10" + }, + { + "kind": "number", + "nativeSrc": "10183:2:10", + "nodeType": "YulLiteral", + "src": "10183:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10154:3:10", + "nodeType": "YulIdentifier", + "src": "10154:3:10" + }, + "nativeSrc": "10154:32:10", + "nodeType": "YulFunctionCall", + "src": "10154:32:10" + }, + "nativeSrc": "10151:119:10", + "nodeType": "YulIf", + "src": "10151:119:10" + }, + { + "nativeSrc": "10280:296:10", + "nodeType": "YulBlock", + "src": "10280:296:10", + "statements": [ + { + "nativeSrc": "10295:45:10", + "nodeType": "YulVariableDeclaration", + "src": "10295:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10326:9:10", + "nodeType": "YulIdentifier", + "src": "10326:9:10" + }, + { + "kind": "number", + "nativeSrc": "10337:1:10", + "nodeType": "YulLiteral", + "src": "10337:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10322:3:10", + "nodeType": "YulIdentifier", + "src": "10322:3:10" + }, + "nativeSrc": "10322:17:10", + "nodeType": "YulFunctionCall", + "src": "10322:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10309:12:10", + "nodeType": "YulIdentifier", + "src": "10309:12:10" + }, + "nativeSrc": "10309:31:10", + "nodeType": "YulFunctionCall", + "src": "10309:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10299:6:10", + "nodeType": "YulTypedName", + "src": "10299:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10387:83:10", + "nodeType": "YulBlock", + "src": "10387:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10389:77:10", + "nodeType": "YulIdentifier", + "src": "10389:77:10" + }, + "nativeSrc": "10389:79:10", + "nodeType": "YulFunctionCall", + "src": "10389:79:10" + }, + "nativeSrc": "10389:79:10", + "nodeType": "YulExpressionStatement", + "src": "10389:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10359:6:10", + "nodeType": "YulIdentifier", + "src": "10359:6:10" + }, + { + "kind": "number", + "nativeSrc": "10367:18:10", + "nodeType": "YulLiteral", + "src": "10367:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10356:2:10", + "nodeType": "YulIdentifier", + "src": "10356:2:10" + }, + "nativeSrc": "10356:30:10", + "nodeType": "YulFunctionCall", + "src": "10356:30:10" + }, + "nativeSrc": "10353:117:10", + "nodeType": "YulIf", + "src": "10353:117:10" + }, + { + "nativeSrc": "10484:82:10", + "nodeType": "YulAssignment", + "src": "10484:82:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10538:9:10", + "nodeType": "YulIdentifier", + "src": "10538:9:10" + }, + { + "name": "offset", + "nativeSrc": "10549:6:10", + "nodeType": "YulIdentifier", + "src": "10549:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10534:3:10", + "nodeType": "YulIdentifier", + "src": "10534:3:10" + }, + "nativeSrc": "10534:22:10", + "nodeType": "YulFunctionCall", + "src": "10534:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "10558:7:10", + "nodeType": "YulIdentifier", + "src": "10558:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_calldata_ptr", + "nativeSrc": "10502:31:10", + "nodeType": "YulIdentifier", + "src": "10502:31:10" + }, + "nativeSrc": "10502:64:10", + "nodeType": "YulFunctionCall", + "src": "10502:64:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10484:6:10", + "nodeType": "YulIdentifier", + "src": "10484:6:10" + }, + { + "name": "value1", + "nativeSrc": "10492:6:10", + "nodeType": "YulIdentifier", + "src": "10492:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "10586:297:10", + "nodeType": "YulBlock", + "src": "10586:297:10", + "statements": [ + { + "nativeSrc": "10601:46:10", + "nodeType": "YulVariableDeclaration", + "src": "10601:46:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10632:9:10", + "nodeType": "YulIdentifier", + "src": "10632:9:10" + }, + { + "kind": "number", + "nativeSrc": "10643:2:10", + "nodeType": "YulLiteral", + "src": "10643:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10628:3:10", + "nodeType": "YulIdentifier", + "src": "10628:3:10" + }, + "nativeSrc": "10628:18:10", + "nodeType": "YulFunctionCall", + "src": "10628:18:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10615:12:10", + "nodeType": "YulIdentifier", + "src": "10615:12:10" + }, + "nativeSrc": "10615:32:10", + "nodeType": "YulFunctionCall", + "src": "10615:32:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10605:6:10", + "nodeType": "YulTypedName", + "src": "10605:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10694:83:10", + "nodeType": "YulBlock", + "src": "10694:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10696:77:10", + "nodeType": "YulIdentifier", + "src": "10696:77:10" + }, + "nativeSrc": "10696:79:10", + "nodeType": "YulFunctionCall", + "src": "10696:79:10" + }, + "nativeSrc": "10696:79:10", + "nodeType": "YulExpressionStatement", + "src": "10696:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10666:6:10", + "nodeType": "YulIdentifier", + "src": "10666:6:10" + }, + { + "kind": "number", + "nativeSrc": "10674:18:10", + "nodeType": "YulLiteral", + "src": "10674:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10663:2:10", + "nodeType": "YulIdentifier", + "src": "10663:2:10" + }, + "nativeSrc": "10663:30:10", + "nodeType": "YulFunctionCall", + "src": "10663:30:10" + }, + "nativeSrc": "10660:117:10", + "nodeType": "YulIf", + "src": "10660:117:10" + }, + { + "nativeSrc": "10791:82:10", + "nodeType": "YulAssignment", + "src": "10791:82:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10845:9:10", + "nodeType": "YulIdentifier", + "src": "10845:9:10" + }, + { + "name": "offset", + "nativeSrc": "10856:6:10", + "nodeType": "YulIdentifier", + "src": "10856:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10841:3:10", + "nodeType": "YulIdentifier", + "src": "10841:3:10" + }, + "nativeSrc": "10841:22:10", + "nodeType": "YulFunctionCall", + "src": "10841:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "10865:7:10", + "nodeType": "YulIdentifier", + "src": "10865:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_calldata_ptr", + "nativeSrc": "10809:31:10", + "nodeType": "YulIdentifier", + "src": "10809:31:10" + }, + "nativeSrc": "10809:64:10", + "nodeType": "YulFunctionCall", + "src": "10809:64:10" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "10791:6:10", + "nodeType": "YulIdentifier", + "src": "10791:6:10" + }, + { + "name": "value3", + "nativeSrc": "10799:6:10", + "nodeType": "YulIdentifier", + "src": "10799:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr", + "nativeSrc": "10020:870:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10087:9:10", + "nodeType": "YulTypedName", + "src": "10087:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10098:7:10", + "nodeType": "YulTypedName", + "src": "10098:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10110:6:10", + "nodeType": "YulTypedName", + "src": "10110:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10118:6:10", + "nodeType": "YulTypedName", + "src": "10118:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10126:6:10", + "nodeType": "YulTypedName", + "src": "10126:6:10", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10134:6:10", + "nodeType": "YulTypedName", + "src": "10134:6:10", + "type": "" + } + ], + "src": "10020:870:10" + }, + { + "body": { + "nativeSrc": "10954:40:10", + "nodeType": "YulBlock", + "src": "10954:40:10", + "statements": [ + { + "nativeSrc": "10965:22:10", + "nodeType": "YulAssignment", + "src": "10965:22:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "10981:5:10", + "nodeType": "YulIdentifier", + "src": "10981:5:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10975:5:10", + "nodeType": "YulIdentifier", + "src": "10975:5:10" + }, + "nativeSrc": "10975:12:10", + "nodeType": "YulFunctionCall", + "src": "10975:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "10965:6:10", + "nodeType": "YulIdentifier", + "src": "10965:6:10" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "10896:98:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "10937:5:10", + "nodeType": "YulTypedName", + "src": "10937:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "10947:6:10", + "nodeType": "YulTypedName", + "src": "10947:6:10", + "type": "" + } + ], + "src": "10896:98:10" + }, + { + "body": { + "nativeSrc": "11095:73:10", + "nodeType": "YulBlock", + "src": "11095:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11112:3:10", + "nodeType": "YulIdentifier", + "src": "11112:3:10" + }, + { + "name": "length", + "nativeSrc": "11117:6:10", + "nodeType": "YulIdentifier", + "src": "11117:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11105:6:10", + "nodeType": "YulIdentifier", + "src": "11105:6:10" + }, + "nativeSrc": "11105:19:10", + "nodeType": "YulFunctionCall", + "src": "11105:19:10" + }, + "nativeSrc": "11105:19:10", + "nodeType": "YulExpressionStatement", + "src": "11105:19:10" + }, + { + "nativeSrc": "11133:29:10", + "nodeType": "YulAssignment", + "src": "11133:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11152:3:10", + "nodeType": "YulIdentifier", + "src": "11152:3:10" + }, + { + "kind": "number", + "nativeSrc": "11157:4:10", + "nodeType": "YulLiteral", + "src": "11157:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11148:3:10", + "nodeType": "YulIdentifier", + "src": "11148:3:10" + }, + "nativeSrc": "11148:14:10", + "nodeType": "YulFunctionCall", + "src": "11148:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "11133:11:10", + "nodeType": "YulIdentifier", + "src": "11133:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "11000:168:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "11067:3:10", + "nodeType": "YulTypedName", + "src": "11067:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "11072:6:10", + "nodeType": "YulTypedName", + "src": "11072:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "11083:11:10", + "nodeType": "YulTypedName", + "src": "11083:11:10", + "type": "" + } + ], + "src": "11000:168:10" + }, + { + "body": { + "nativeSrc": "11264:283:10", + "nodeType": "YulBlock", + "src": "11264:283:10", + "statements": [ + { + "nativeSrc": "11274:52:10", + "nodeType": "YulVariableDeclaration", + "src": "11274:52:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11320:5:10", + "nodeType": "YulIdentifier", + "src": "11320:5:10" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "11288:31:10", + "nodeType": "YulIdentifier", + "src": "11288:31:10" + }, + "nativeSrc": "11288:38:10", + "nodeType": "YulFunctionCall", + "src": "11288:38:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "11278:6:10", + "nodeType": "YulTypedName", + "src": "11278:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "11335:77:10", + "nodeType": "YulAssignment", + "src": "11335:77:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11400:3:10", + "nodeType": "YulIdentifier", + "src": "11400:3:10" + }, + { + "name": "length", + "nativeSrc": "11405:6:10", + "nodeType": "YulIdentifier", + "src": "11405:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "11342:57:10", + "nodeType": "YulIdentifier", + "src": "11342:57:10" + }, + "nativeSrc": "11342:70:10", + "nodeType": "YulFunctionCall", + "src": "11342:70:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11335:3:10", + "nodeType": "YulIdentifier", + "src": "11335:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11460:5:10", + "nodeType": "YulIdentifier", + "src": "11460:5:10" + }, + { + "kind": "number", + "nativeSrc": "11467:4:10", + "nodeType": "YulLiteral", + "src": "11467:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11456:3:10", + "nodeType": "YulIdentifier", + "src": "11456:3:10" + }, + "nativeSrc": "11456:16:10", + "nodeType": "YulFunctionCall", + "src": "11456:16:10" + }, + { + "name": "pos", + "nativeSrc": "11474:3:10", + "nodeType": "YulIdentifier", + "src": "11474:3:10" + }, + { + "name": "length", + "nativeSrc": "11479:6:10", + "nodeType": "YulIdentifier", + "src": "11479:6:10" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "11421:34:10", + "nodeType": "YulIdentifier", + "src": "11421:34:10" + }, + "nativeSrc": "11421:65:10", + "nodeType": "YulFunctionCall", + "src": "11421:65:10" + }, + "nativeSrc": "11421:65:10", + "nodeType": "YulExpressionStatement", + "src": "11421:65:10" + }, + { + "nativeSrc": "11495:46:10", + "nodeType": "YulAssignment", + "src": "11495:46:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11506:3:10", + "nodeType": "YulIdentifier", + "src": "11506:3:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "11533:6:10", + "nodeType": "YulIdentifier", + "src": "11533:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "11511:21:10", + "nodeType": "YulIdentifier", + "src": "11511:21:10" + }, + "nativeSrc": "11511:29:10", + "nodeType": "YulFunctionCall", + "src": "11511:29:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11502:3:10", + "nodeType": "YulIdentifier", + "src": "11502:3:10" + }, + "nativeSrc": "11502:39:10", + "nodeType": "YulFunctionCall", + "src": "11502:39:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "11495:3:10", + "nodeType": "YulIdentifier", + "src": "11495:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "11174:373:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11245:5:10", + "nodeType": "YulTypedName", + "src": "11245:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "11252:3:10", + "nodeType": "YulTypedName", + "src": "11252:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "11260:3:10", + "nodeType": "YulTypedName", + "src": "11260:3:10", + "type": "" + } + ], + "src": "11174:373:10" + }, + { + "body": { + "nativeSrc": "11669:193:10", + "nodeType": "YulBlock", + "src": "11669:193:10", + "statements": [ + { + "nativeSrc": "11679:26:10", + "nodeType": "YulAssignment", + "src": "11679:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11691:9:10", + "nodeType": "YulIdentifier", + "src": "11691:9:10" + }, + { + "kind": "number", + "nativeSrc": "11702:2:10", + "nodeType": "YulLiteral", + "src": "11702:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11687:3:10", + "nodeType": "YulIdentifier", + "src": "11687:3:10" + }, + "nativeSrc": "11687:18:10", + "nodeType": "YulFunctionCall", + "src": "11687:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11679:4:10", + "nodeType": "YulIdentifier", + "src": "11679:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11726:9:10", + "nodeType": "YulIdentifier", + "src": "11726:9:10" + }, + { + "kind": "number", + "nativeSrc": "11737:1:10", + "nodeType": "YulLiteral", + "src": "11737:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11722:3:10", + "nodeType": "YulIdentifier", + "src": "11722:3:10" + }, + "nativeSrc": "11722:17:10", + "nodeType": "YulFunctionCall", + "src": "11722:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11745:4:10", + "nodeType": "YulIdentifier", + "src": "11745:4:10" + }, + { + "name": "headStart", + "nativeSrc": "11751:9:10", + "nodeType": "YulIdentifier", + "src": "11751:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11741:3:10", + "nodeType": "YulIdentifier", + "src": "11741:3:10" + }, + "nativeSrc": "11741:20:10", + "nodeType": "YulFunctionCall", + "src": "11741:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11715:6:10", + "nodeType": "YulIdentifier", + "src": "11715:6:10" + }, + "nativeSrc": "11715:47:10", + "nodeType": "YulFunctionCall", + "src": "11715:47:10" + }, + "nativeSrc": "11715:47:10", + "nodeType": "YulExpressionStatement", + "src": "11715:47:10" + }, + { + "nativeSrc": "11771:84:10", + "nodeType": "YulAssignment", + "src": "11771:84:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11841:6:10", + "nodeType": "YulIdentifier", + "src": "11841:6:10" + }, + { + "name": "tail", + "nativeSrc": "11850:4:10", + "nodeType": "YulIdentifier", + "src": "11850:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "11779:61:10", + "nodeType": "YulIdentifier", + "src": "11779:61:10" + }, + "nativeSrc": "11779:76:10", + "nodeType": "YulFunctionCall", + "src": "11779:76:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11771:4:10", + "nodeType": "YulIdentifier", + "src": "11771:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "11553:309:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11641:9:10", + "nodeType": "YulTypedName", + "src": "11641:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11653:6:10", + "nodeType": "YulTypedName", + "src": "11653:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11664:4:10", + "nodeType": "YulTypedName", + "src": "11664:4:10", + "type": "" + } + ], + "src": "11553:309:10" + }, + { + "body": { + "nativeSrc": "11975:478:10", + "nodeType": "YulBlock", + "src": "11975:478:10", + "statements": [ + { + "body": { + "nativeSrc": "12024:83:10", + "nodeType": "YulBlock", + "src": "12024:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "12026:77:10", + "nodeType": "YulIdentifier", + "src": "12026:77:10" + }, + "nativeSrc": "12026:79:10", + "nodeType": "YulFunctionCall", + "src": "12026:79:10" + }, + "nativeSrc": "12026:79:10", + "nodeType": "YulExpressionStatement", + "src": "12026:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12003:6:10", + "nodeType": "YulIdentifier", + "src": "12003:6:10" + }, + { + "kind": "number", + "nativeSrc": "12011:4:10", + "nodeType": "YulLiteral", + "src": "12011:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11999:3:10", + "nodeType": "YulIdentifier", + "src": "11999:3:10" + }, + "nativeSrc": "11999:17:10", + "nodeType": "YulFunctionCall", + "src": "11999:17:10" + }, + { + "name": "end", + "nativeSrc": "12018:3:10", + "nodeType": "YulIdentifier", + "src": "12018:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11995:3:10", + "nodeType": "YulIdentifier", + "src": "11995:3:10" + }, + "nativeSrc": "11995:27:10", + "nodeType": "YulFunctionCall", + "src": "11995:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11988:6:10", + "nodeType": "YulIdentifier", + "src": "11988:6:10" + }, + "nativeSrc": "11988:35:10", + "nodeType": "YulFunctionCall", + "src": "11988:35:10" + }, + "nativeSrc": "11985:122:10", + "nodeType": "YulIf", + "src": "11985:122:10" + }, + { + "nativeSrc": "12116:30:10", + "nodeType": "YulAssignment", + "src": "12116:30:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12139:6:10", + "nodeType": "YulIdentifier", + "src": "12139:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12126:12:10", + "nodeType": "YulIdentifier", + "src": "12126:12:10" + }, + "nativeSrc": "12126:20:10", + "nodeType": "YulFunctionCall", + "src": "12126:20:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12116:6:10", + "nodeType": "YulIdentifier", + "src": "12116:6:10" + } + ] + }, + { + "body": { + "nativeSrc": "12189:83:10", + "nodeType": "YulBlock", + "src": "12189:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "12191:77:10", + "nodeType": "YulIdentifier", + "src": "12191:77:10" + }, + "nativeSrc": "12191:79:10", + "nodeType": "YulFunctionCall", + "src": "12191:79:10" + }, + "nativeSrc": "12191:79:10", + "nodeType": "YulExpressionStatement", + "src": "12191:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12161:6:10", + "nodeType": "YulIdentifier", + "src": "12161:6:10" + }, + { + "kind": "number", + "nativeSrc": "12169:18:10", + "nodeType": "YulLiteral", + "src": "12169:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12158:2:10", + "nodeType": "YulIdentifier", + "src": "12158:2:10" + }, + "nativeSrc": "12158:30:10", + "nodeType": "YulFunctionCall", + "src": "12158:30:10" + }, + "nativeSrc": "12155:117:10", + "nodeType": "YulIf", + "src": "12155:117:10" + }, + { + "nativeSrc": "12281:29:10", + "nodeType": "YulAssignment", + "src": "12281:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12297:6:10", + "nodeType": "YulIdentifier", + "src": "12297:6:10" + }, + { + "kind": "number", + "nativeSrc": "12305:4:10", + "nodeType": "YulLiteral", + "src": "12305:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12293:3:10", + "nodeType": "YulIdentifier", + "src": "12293:3:10" + }, + "nativeSrc": "12293:17:10", + "nodeType": "YulFunctionCall", + "src": "12293:17:10" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "12281:8:10", + "nodeType": "YulIdentifier", + "src": "12281:8:10" + } + ] + }, + { + "body": { + "nativeSrc": "12364:83:10", + "nodeType": "YulBlock", + "src": "12364:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "12366:77:10", + "nodeType": "YulIdentifier", + "src": "12366:77:10" + }, + "nativeSrc": "12366:79:10", + "nodeType": "YulFunctionCall", + "src": "12366:79:10" + }, + "nativeSrc": "12366:79:10", + "nodeType": "YulExpressionStatement", + "src": "12366:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "12329:8:10", + "nodeType": "YulIdentifier", + "src": "12329:8:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12343:6:10", + "nodeType": "YulIdentifier", + "src": "12343:6:10" + }, + { + "kind": "number", + "nativeSrc": "12351:4:10", + "nodeType": "YulLiteral", + "src": "12351:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "12339:3:10", + "nodeType": "YulIdentifier", + "src": "12339:3:10" + }, + "nativeSrc": "12339:17:10", + "nodeType": "YulFunctionCall", + "src": "12339:17:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12325:3:10", + "nodeType": "YulIdentifier", + "src": "12325:3:10" + }, + "nativeSrc": "12325:32:10", + "nodeType": "YulFunctionCall", + "src": "12325:32:10" + }, + { + "name": "end", + "nativeSrc": "12359:3:10", + "nodeType": "YulIdentifier", + "src": "12359:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12322:2:10", + "nodeType": "YulIdentifier", + "src": "12322:2:10" + }, + "nativeSrc": "12322:41:10", + "nodeType": "YulFunctionCall", + "src": "12322:41:10" + }, + "nativeSrc": "12319:128:10", + "nodeType": "YulIf", + "src": "12319:128:10" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "11885:568:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "11942:6:10", + "nodeType": "YulTypedName", + "src": "11942:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "11950:3:10", + "nodeType": "YulTypedName", + "src": "11950:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "11958:8:10", + "nodeType": "YulTypedName", + "src": "11958:8:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "11968:6:10", + "nodeType": "YulTypedName", + "src": "11968:6:10", + "type": "" + } + ], + "src": "11885:568:10" + }, + { + "body": { + "nativeSrc": "12560:458:10", + "nodeType": "YulBlock", + "src": "12560:458:10", + "statements": [ + { + "body": { + "nativeSrc": "12606:83:10", + "nodeType": "YulBlock", + "src": "12606:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "12608:77:10", + "nodeType": "YulIdentifier", + "src": "12608:77:10" + }, + "nativeSrc": "12608:79:10", + "nodeType": "YulFunctionCall", + "src": "12608:79:10" + }, + "nativeSrc": "12608:79:10", + "nodeType": "YulExpressionStatement", + "src": "12608:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12581:7:10", + "nodeType": "YulIdentifier", + "src": "12581:7:10" + }, + { + "name": "headStart", + "nativeSrc": "12590:9:10", + "nodeType": "YulIdentifier", + "src": "12590:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12577:3:10", + "nodeType": "YulIdentifier", + "src": "12577:3:10" + }, + "nativeSrc": "12577:23:10", + "nodeType": "YulFunctionCall", + "src": "12577:23:10" + }, + { + "kind": "number", + "nativeSrc": "12602:2:10", + "nodeType": "YulLiteral", + "src": "12602:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12573:3:10", + "nodeType": "YulIdentifier", + "src": "12573:3:10" + }, + "nativeSrc": "12573:32:10", + "nodeType": "YulFunctionCall", + "src": "12573:32:10" + }, + "nativeSrc": "12570:119:10", + "nodeType": "YulIf", + "src": "12570:119:10" + }, + { + "nativeSrc": "12699:312:10", + "nodeType": "YulBlock", + "src": "12699:312:10", + "statements": [ + { + "nativeSrc": "12714:45:10", + "nodeType": "YulVariableDeclaration", + "src": "12714:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12745:9:10", + "nodeType": "YulIdentifier", + "src": "12745:9:10" + }, + { + "kind": "number", + "nativeSrc": "12756:1:10", + "nodeType": "YulLiteral", + "src": "12756:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12741:3:10", + "nodeType": "YulIdentifier", + "src": "12741:3:10" + }, + "nativeSrc": "12741:17:10", + "nodeType": "YulFunctionCall", + "src": "12741:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12728:12:10", + "nodeType": "YulIdentifier", + "src": "12728:12:10" + }, + "nativeSrc": "12728:31:10", + "nodeType": "YulFunctionCall", + "src": "12728:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "12718:6:10", + "nodeType": "YulTypedName", + "src": "12718:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12806:83:10", + "nodeType": "YulBlock", + "src": "12806:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "12808:77:10", + "nodeType": "YulIdentifier", + "src": "12808:77:10" + }, + "nativeSrc": "12808:79:10", + "nodeType": "YulFunctionCall", + "src": "12808:79:10" + }, + "nativeSrc": "12808:79:10", + "nodeType": "YulExpressionStatement", + "src": "12808:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12778:6:10", + "nodeType": "YulIdentifier", + "src": "12778:6:10" + }, + { + "kind": "number", + "nativeSrc": "12786:18:10", + "nodeType": "YulLiteral", + "src": "12786:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12775:2:10", + "nodeType": "YulIdentifier", + "src": "12775:2:10" + }, + "nativeSrc": "12775:30:10", + "nodeType": "YulFunctionCall", + "src": "12775:30:10" + }, + "nativeSrc": "12772:117:10", + "nodeType": "YulIf", + "src": "12772:117:10" + }, + { + "nativeSrc": "12903:98:10", + "nodeType": "YulAssignment", + "src": "12903:98:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12973:9:10", + "nodeType": "YulIdentifier", + "src": "12973:9:10" + }, + { + "name": "offset", + "nativeSrc": "12984:6:10", + "nodeType": "YulIdentifier", + "src": "12984:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12969:3:10", + "nodeType": "YulIdentifier", + "src": "12969:3:10" + }, + "nativeSrc": "12969:22:10", + "nodeType": "YulFunctionCall", + "src": "12969:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "12993:7:10", + "nodeType": "YulIdentifier", + "src": "12993:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "12921:47:10", + "nodeType": "YulIdentifier", + "src": "12921:47:10" + }, + "nativeSrc": "12921:80:10", + "nodeType": "YulFunctionCall", + "src": "12921:80:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12903:6:10", + "nodeType": "YulIdentifier", + "src": "12903:6:10" + }, + { + "name": "value1", + "nativeSrc": "12911:6:10", + "nodeType": "YulIdentifier", + "src": "12911:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "12459:559:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12522:9:10", + "nodeType": "YulTypedName", + "src": "12522:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12533:7:10", + "nodeType": "YulTypedName", + "src": "12533:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12545:6:10", + "nodeType": "YulTypedName", + "src": "12545:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12553:6:10", + "nodeType": "YulTypedName", + "src": "12553:6:10", + "type": "" + } + ], + "src": "12459:559:10" + }, + { + "body": { + "nativeSrc": "13091:241:10", + "nodeType": "YulBlock", + "src": "13091:241:10", + "statements": [ + { + "body": { + "nativeSrc": "13196:22:10", + "nodeType": "YulBlock", + "src": "13196:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "13198:16:10", + "nodeType": "YulIdentifier", + "src": "13198:16:10" + }, + "nativeSrc": "13198:18:10", + "nodeType": "YulFunctionCall", + "src": "13198:18:10" + }, + "nativeSrc": "13198:18:10", + "nodeType": "YulExpressionStatement", + "src": "13198:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "13168:6:10", + "nodeType": "YulIdentifier", + "src": "13168:6:10" + }, + { + "kind": "number", + "nativeSrc": "13176:18:10", + "nodeType": "YulLiteral", + "src": "13176:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13165:2:10", + "nodeType": "YulIdentifier", + "src": "13165:2:10" + }, + "nativeSrc": "13165:30:10", + "nodeType": "YulFunctionCall", + "src": "13165:30:10" + }, + "nativeSrc": "13162:56:10", + "nodeType": "YulIf", + "src": "13162:56:10" + }, + { + "nativeSrc": "13228:37:10", + "nodeType": "YulAssignment", + "src": "13228:37:10", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "13258:6:10", + "nodeType": "YulIdentifier", + "src": "13258:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "13236:21:10", + "nodeType": "YulIdentifier", + "src": "13236:21:10" + }, + "nativeSrc": "13236:29:10", + "nodeType": "YulFunctionCall", + "src": "13236:29:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "13228:4:10", + "nodeType": "YulIdentifier", + "src": "13228:4:10" + } + ] + }, + { + "nativeSrc": "13302:23:10", + "nodeType": "YulAssignment", + "src": "13302:23:10", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "13314:4:10", + "nodeType": "YulIdentifier", + "src": "13314:4:10" + }, + { + "kind": "number", + "nativeSrc": "13320:4:10", + "nodeType": "YulLiteral", + "src": "13320:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13310:3:10", + "nodeType": "YulIdentifier", + "src": "13310:3:10" + }, + "nativeSrc": "13310:15:10", + "nodeType": "YulFunctionCall", + "src": "13310:15:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "13302:4:10", + "nodeType": "YulIdentifier", + "src": "13302:4:10" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "13024:308:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "13075:6:10", + "nodeType": "YulTypedName", + "src": "13075:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "13086:4:10", + "nodeType": "YulTypedName", + "src": "13086:4:10", + "type": "" + } + ], + "src": "13024:308:10" + }, + { + "body": { + "nativeSrc": "13422:341:10", + "nodeType": "YulBlock", + "src": "13422:341:10", + "statements": [ + { + "nativeSrc": "13432:75:10", + "nodeType": "YulAssignment", + "src": "13432:75:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "13499:6:10", + "nodeType": "YulIdentifier", + "src": "13499:6:10" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "13457:41:10", + "nodeType": "YulIdentifier", + "src": "13457:41:10" + }, + "nativeSrc": "13457:49:10", + "nodeType": "YulFunctionCall", + "src": "13457:49:10" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "13441:15:10", + "nodeType": "YulIdentifier", + "src": "13441:15:10" + }, + "nativeSrc": "13441:66:10", + "nodeType": "YulFunctionCall", + "src": "13441:66:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "13432:5:10", + "nodeType": "YulIdentifier", + "src": "13432:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "13523:5:10", + "nodeType": "YulIdentifier", + "src": "13523:5:10" + }, + { + "name": "length", + "nativeSrc": "13530:6:10", + "nodeType": "YulIdentifier", + "src": "13530:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13516:6:10", + "nodeType": "YulIdentifier", + "src": "13516:6:10" + }, + "nativeSrc": "13516:21:10", + "nodeType": "YulFunctionCall", + "src": "13516:21:10" + }, + "nativeSrc": "13516:21:10", + "nodeType": "YulExpressionStatement", + "src": "13516:21:10" + }, + { + "nativeSrc": "13546:27:10", + "nodeType": "YulVariableDeclaration", + "src": "13546:27:10", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "13561:5:10", + "nodeType": "YulIdentifier", + "src": "13561:5:10" + }, + { + "kind": "number", + "nativeSrc": "13568:4:10", + "nodeType": "YulLiteral", + "src": "13568:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13557:3:10", + "nodeType": "YulIdentifier", + "src": "13557:3:10" + }, + "nativeSrc": "13557:16:10", + "nodeType": "YulFunctionCall", + "src": "13557:16:10" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "13550:3:10", + "nodeType": "YulTypedName", + "src": "13550:3:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13611:83:10", + "nodeType": "YulBlock", + "src": "13611:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "13613:77:10", + "nodeType": "YulIdentifier", + "src": "13613:77:10" + }, + "nativeSrc": "13613:79:10", + "nodeType": "YulFunctionCall", + "src": "13613:79:10" + }, + "nativeSrc": "13613:79:10", + "nodeType": "YulExpressionStatement", + "src": "13613:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "13592:3:10", + "nodeType": "YulIdentifier", + "src": "13592:3:10" + }, + { + "name": "length", + "nativeSrc": "13597:6:10", + "nodeType": "YulIdentifier", + "src": "13597:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13588:3:10", + "nodeType": "YulIdentifier", + "src": "13588:3:10" + }, + "nativeSrc": "13588:16:10", + "nodeType": "YulFunctionCall", + "src": "13588:16:10" + }, + { + "name": "end", + "nativeSrc": "13606:3:10", + "nodeType": "YulIdentifier", + "src": "13606:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13585:2:10", + "nodeType": "YulIdentifier", + "src": "13585:2:10" + }, + "nativeSrc": "13585:25:10", + "nodeType": "YulFunctionCall", + "src": "13585:25:10" + }, + "nativeSrc": "13582:112:10", + "nodeType": "YulIf", + "src": "13582:112:10" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "13740:3:10", + "nodeType": "YulIdentifier", + "src": "13740:3:10" + }, + { + "name": "dst", + "nativeSrc": "13745:3:10", + "nodeType": "YulIdentifier", + "src": "13745:3:10" + }, + { + "name": "length", + "nativeSrc": "13750:6:10", + "nodeType": "YulIdentifier", + "src": "13750:6:10" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "13703:36:10", + "nodeType": "YulIdentifier", + "src": "13703:36:10" + }, + "nativeSrc": "13703:54:10", + "nodeType": "YulFunctionCall", + "src": "13703:54:10" + }, + "nativeSrc": "13703:54:10", + "nodeType": "YulExpressionStatement", + "src": "13703:54:10" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "13338:425:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "13395:3:10", + "nodeType": "YulTypedName", + "src": "13395:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "13400:6:10", + "nodeType": "YulTypedName", + "src": "13400:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "13408:3:10", + "nodeType": "YulTypedName", + "src": "13408:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "13416:5:10", + "nodeType": "YulTypedName", + "src": "13416:5:10", + "type": "" + } + ], + "src": "13338:425:10" + }, + { + "body": { + "nativeSrc": "13845:278:10", + "nodeType": "YulBlock", + "src": "13845:278:10", + "statements": [ + { + "body": { + "nativeSrc": "13894:83:10", + "nodeType": "YulBlock", + "src": "13894:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "13896:77:10", + "nodeType": "YulIdentifier", + "src": "13896:77:10" + }, + "nativeSrc": "13896:79:10", + "nodeType": "YulFunctionCall", + "src": "13896:79:10" + }, + "nativeSrc": "13896:79:10", + "nodeType": "YulExpressionStatement", + "src": "13896:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13873:6:10", + "nodeType": "YulIdentifier", + "src": "13873:6:10" + }, + { + "kind": "number", + "nativeSrc": "13881:4:10", + "nodeType": "YulLiteral", + "src": "13881:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13869:3:10", + "nodeType": "YulIdentifier", + "src": "13869:3:10" + }, + "nativeSrc": "13869:17:10", + "nodeType": "YulFunctionCall", + "src": "13869:17:10" + }, + { + "name": "end", + "nativeSrc": "13888:3:10", + "nodeType": "YulIdentifier", + "src": "13888:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13865:3:10", + "nodeType": "YulIdentifier", + "src": "13865:3:10" + }, + "nativeSrc": "13865:27:10", + "nodeType": "YulFunctionCall", + "src": "13865:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "13858:6:10", + "nodeType": "YulIdentifier", + "src": "13858:6:10" + }, + "nativeSrc": "13858:35:10", + "nodeType": "YulFunctionCall", + "src": "13858:35:10" + }, + "nativeSrc": "13855:122:10", + "nodeType": "YulIf", + "src": "13855:122:10" + }, + { + "nativeSrc": "13986:34:10", + "nodeType": "YulVariableDeclaration", + "src": "13986:34:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14013:6:10", + "nodeType": "YulIdentifier", + "src": "14013:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14000:12:10", + "nodeType": "YulIdentifier", + "src": "14000:12:10" + }, + "nativeSrc": "14000:20:10", + "nodeType": "YulFunctionCall", + "src": "14000:20:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "13990:6:10", + "nodeType": "YulTypedName", + "src": "13990:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "14029:88:10", + "nodeType": "YulAssignment", + "src": "14029:88:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14090:6:10", + "nodeType": "YulIdentifier", + "src": "14090:6:10" + }, + { + "kind": "number", + "nativeSrc": "14098:4:10", + "nodeType": "YulLiteral", + "src": "14098:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14086:3:10", + "nodeType": "YulIdentifier", + "src": "14086:3:10" + }, + "nativeSrc": "14086:17:10", + "nodeType": "YulFunctionCall", + "src": "14086:17:10" + }, + { + "name": "length", + "nativeSrc": "14105:6:10", + "nodeType": "YulIdentifier", + "src": "14105:6:10" + }, + { + "name": "end", + "nativeSrc": "14113:3:10", + "nodeType": "YulIdentifier", + "src": "14113:3:10" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "14038:47:10", + "nodeType": "YulIdentifier", + "src": "14038:47:10" + }, + "nativeSrc": "14038:79:10", + "nodeType": "YulFunctionCall", + "src": "14038:79:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "14029:5:10", + "nodeType": "YulIdentifier", + "src": "14029:5:10" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "13783:340:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "13823:6:10", + "nodeType": "YulTypedName", + "src": "13823:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "13831:3:10", + "nodeType": "YulTypedName", + "src": "13831:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "13839:5:10", + "nodeType": "YulTypedName", + "src": "13839:5:10", + "type": "" + } + ], + "src": "13783:340:10" + }, + { + "body": { + "nativeSrc": "14211:229:10", + "nodeType": "YulBlock", + "src": "14211:229:10", + "statements": [ + { + "body": { + "nativeSrc": "14316:22:10", + "nodeType": "YulBlock", + "src": "14316:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "14318:16:10", + "nodeType": "YulIdentifier", + "src": "14318:16:10" + }, + "nativeSrc": "14318:18:10", + "nodeType": "YulFunctionCall", + "src": "14318:18:10" + }, + "nativeSrc": "14318:18:10", + "nodeType": "YulExpressionStatement", + "src": "14318:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "14288:6:10", + "nodeType": "YulIdentifier", + "src": "14288:6:10" + }, + { + "kind": "number", + "nativeSrc": "14296:18:10", + "nodeType": "YulLiteral", + "src": "14296:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14285:2:10", + "nodeType": "YulIdentifier", + "src": "14285:2:10" + }, + "nativeSrc": "14285:30:10", + "nodeType": "YulFunctionCall", + "src": "14285:30:10" + }, + "nativeSrc": "14282:56:10", + "nodeType": "YulIf", + "src": "14282:56:10" + }, + { + "nativeSrc": "14348:25:10", + "nodeType": "YulAssignment", + "src": "14348:25:10", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "14360:6:10", + "nodeType": "YulIdentifier", + "src": "14360:6:10" + }, + { + "kind": "number", + "nativeSrc": "14368:4:10", + "nodeType": "YulLiteral", + "src": "14368:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "14356:3:10", + "nodeType": "YulIdentifier", + "src": "14356:3:10" + }, + "nativeSrc": "14356:17:10", + "nodeType": "YulFunctionCall", + "src": "14356:17:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "14348:4:10", + "nodeType": "YulIdentifier", + "src": "14348:4:10" + } + ] + }, + { + "nativeSrc": "14410:23:10", + "nodeType": "YulAssignment", + "src": "14410:23:10", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "14422:4:10", + "nodeType": "YulIdentifier", + "src": "14422:4:10" + }, + { + "kind": "number", + "nativeSrc": "14428:4:10", + "nodeType": "YulLiteral", + "src": "14428:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14418:3:10", + "nodeType": "YulIdentifier", + "src": "14418:3:10" + }, + "nativeSrc": "14418:15:10", + "nodeType": "YulFunctionCall", + "src": "14418:15:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "14410:4:10", + "nodeType": "YulIdentifier", + "src": "14410:4:10" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "14129:311:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "14195:6:10", + "nodeType": "YulTypedName", + "src": "14195:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "14206:4:10", + "nodeType": "YulTypedName", + "src": "14206:4:10", + "type": "" + } + ], + "src": "14129:311:10" + }, + { + "body": { + "nativeSrc": "14565:608:10", + "nodeType": "YulBlock", + "src": "14565:608:10", + "statements": [ + { + "nativeSrc": "14575:90:10", + "nodeType": "YulAssignment", + "src": "14575:90:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "14657:6:10", + "nodeType": "YulIdentifier", + "src": "14657:6:10" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "14600:56:10", + "nodeType": "YulIdentifier", + "src": "14600:56:10" + }, + "nativeSrc": "14600:64:10", + "nodeType": "YulFunctionCall", + "src": "14600:64:10" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "14584:15:10", + "nodeType": "YulIdentifier", + "src": "14584:15:10" + }, + "nativeSrc": "14584:81:10", + "nodeType": "YulFunctionCall", + "src": "14584:81:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "14575:5:10", + "nodeType": "YulIdentifier", + "src": "14575:5:10" + } + ] + }, + { + "nativeSrc": "14674:16:10", + "nodeType": "YulVariableDeclaration", + "src": "14674:16:10", + "value": { + "name": "array", + "nativeSrc": "14685:5:10", + "nodeType": "YulIdentifier", + "src": "14685:5:10" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "14678:3:10", + "nodeType": "YulTypedName", + "src": "14678:3:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "14707:5:10", + "nodeType": "YulIdentifier", + "src": "14707:5:10" + }, + { + "name": "length", + "nativeSrc": "14714:6:10", + "nodeType": "YulIdentifier", + "src": "14714:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14700:6:10", + "nodeType": "YulIdentifier", + "src": "14700:6:10" + }, + "nativeSrc": "14700:21:10", + "nodeType": "YulFunctionCall", + "src": "14700:21:10" + }, + "nativeSrc": "14700:21:10", + "nodeType": "YulExpressionStatement", + "src": "14700:21:10" + }, + { + "nativeSrc": "14730:23:10", + "nodeType": "YulAssignment", + "src": "14730:23:10", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "14741:5:10", + "nodeType": "YulIdentifier", + "src": "14741:5:10" + }, + { + "kind": "number", + "nativeSrc": "14748:4:10", + "nodeType": "YulLiteral", + "src": "14748:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14737:3:10", + "nodeType": "YulIdentifier", + "src": "14737:3:10" + }, + "nativeSrc": "14737:16:10", + "nodeType": "YulFunctionCall", + "src": "14737:16:10" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "14730:3:10", + "nodeType": "YulIdentifier", + "src": "14730:3:10" + } + ] + }, + { + "nativeSrc": "14763:44:10", + "nodeType": "YulVariableDeclaration", + "src": "14763:44:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14781:6:10", + "nodeType": "YulIdentifier", + "src": "14781:6:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "14793:6:10", + "nodeType": "YulIdentifier", + "src": "14793:6:10" + }, + { + "kind": "number", + "nativeSrc": "14801:4:10", + "nodeType": "YulLiteral", + "src": "14801:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "14789:3:10", + "nodeType": "YulIdentifier", + "src": "14789:3:10" + }, + "nativeSrc": "14789:17:10", + "nodeType": "YulFunctionCall", + "src": "14789:17:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14777:3:10", + "nodeType": "YulIdentifier", + "src": "14777:3:10" + }, + "nativeSrc": "14777:30:10", + "nodeType": "YulFunctionCall", + "src": "14777:30:10" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "14767:6:10", + "nodeType": "YulTypedName", + "src": "14767:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14835:103:10", + "nodeType": "YulBlock", + "src": "14835:103:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "14849:77:10", + "nodeType": "YulIdentifier", + "src": "14849:77:10" + }, + "nativeSrc": "14849:79:10", + "nodeType": "YulFunctionCall", + "src": "14849:79:10" + }, + "nativeSrc": "14849:79:10", + "nodeType": "YulExpressionStatement", + "src": "14849:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "14822:6:10", + "nodeType": "YulIdentifier", + "src": "14822:6:10" + }, + { + "name": "end", + "nativeSrc": "14830:3:10", + "nodeType": "YulIdentifier", + "src": "14830:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14819:2:10", + "nodeType": "YulIdentifier", + "src": "14819:2:10" + }, + "nativeSrc": "14819:15:10", + "nodeType": "YulFunctionCall", + "src": "14819:15:10" + }, + "nativeSrc": "14816:122:10", + "nodeType": "YulIf", + "src": "14816:122:10" + }, + { + "body": { + "nativeSrc": "15023:144:10", + "nodeType": "YulBlock", + "src": "15023:144:10", + "statements": [ + { + "nativeSrc": "15038:21:10", + "nodeType": "YulVariableDeclaration", + "src": "15038:21:10", + "value": { + "name": "src", + "nativeSrc": "15056:3:10", + "nodeType": "YulIdentifier", + "src": "15056:3:10" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "15042:10:10", + "nodeType": "YulTypedName", + "src": "15042:10:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "15080:3:10", + "nodeType": "YulIdentifier", + "src": "15080:3:10" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "15106:10:10", + "nodeType": "YulIdentifier", + "src": "15106:10:10" + }, + { + "name": "end", + "nativeSrc": "15118:3:10", + "nodeType": "YulIdentifier", + "src": "15118:3:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "15085:20:10", + "nodeType": "YulIdentifier", + "src": "15085:20:10" + }, + "nativeSrc": "15085:37:10", + "nodeType": "YulFunctionCall", + "src": "15085:37:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15073:6:10", + "nodeType": "YulIdentifier", + "src": "15073:6:10" + }, + "nativeSrc": "15073:50:10", + "nodeType": "YulFunctionCall", + "src": "15073:50:10" + }, + "nativeSrc": "15073:50:10", + "nodeType": "YulExpressionStatement", + "src": "15073:50:10" + }, + { + "nativeSrc": "15136:21:10", + "nodeType": "YulAssignment", + "src": "15136:21:10", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "15147:3:10", + "nodeType": "YulIdentifier", + "src": "15147:3:10" + }, + { + "kind": "number", + "nativeSrc": "15152:4:10", + "nodeType": "YulLiteral", + "src": "15152:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15143:3:10", + "nodeType": "YulIdentifier", + "src": "15143:3:10" + }, + "nativeSrc": "15143:14:10", + "nodeType": "YulFunctionCall", + "src": "15143:14:10" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "15136:3:10", + "nodeType": "YulIdentifier", + "src": "15136:3:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "14976:3:10", + "nodeType": "YulIdentifier", + "src": "14976:3:10" + }, + { + "name": "srcEnd", + "nativeSrc": "14981:6:10", + "nodeType": "YulIdentifier", + "src": "14981:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "14973:2:10", + "nodeType": "YulIdentifier", + "src": "14973:2:10" + }, + "nativeSrc": "14973:15:10", + "nodeType": "YulFunctionCall", + "src": "14973:15:10" + }, + "nativeSrc": "14947:220:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "14989:25:10", + "nodeType": "YulBlock", + "src": "14989:25:10", + "statements": [ + { + "nativeSrc": "14991:21:10", + "nodeType": "YulAssignment", + "src": "14991:21:10", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "15002:3:10", + "nodeType": "YulIdentifier", + "src": "15002:3:10" + }, + { + "kind": "number", + "nativeSrc": "15007:4:10", + "nodeType": "YulLiteral", + "src": "15007:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14998:3:10", + "nodeType": "YulIdentifier", + "src": "14998:3:10" + }, + "nativeSrc": "14998:14:10", + "nodeType": "YulFunctionCall", + "src": "14998:14:10" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "14991:3:10", + "nodeType": "YulIdentifier", + "src": "14991:3:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "14951:21:10", + "nodeType": "YulBlock", + "src": "14951:21:10", + "statements": [ + { + "nativeSrc": "14953:17:10", + "nodeType": "YulVariableDeclaration", + "src": "14953:17:10", + "value": { + "name": "offset", + "nativeSrc": "14964:6:10", + "nodeType": "YulIdentifier", + "src": "14964:6:10" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "14957:3:10", + "nodeType": "YulTypedName", + "src": "14957:3:10", + "type": "" + } + ] + } + ] + }, + "src": "14947:220:10" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "14463:710:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "14535:6:10", + "nodeType": "YulTypedName", + "src": "14535:6:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "14543:6:10", + "nodeType": "YulTypedName", + "src": "14543:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "14551:3:10", + "nodeType": "YulTypedName", + "src": "14551:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "14559:5:10", + "nodeType": "YulTypedName", + "src": "14559:5:10", + "type": "" + } + ], + "src": "14463:710:10" + }, + { + "body": { + "nativeSrc": "15273:293:10", + "nodeType": "YulBlock", + "src": "15273:293:10", + "statements": [ + { + "body": { + "nativeSrc": "15322:83:10", + "nodeType": "YulBlock", + "src": "15322:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "15324:77:10", + "nodeType": "YulIdentifier", + "src": "15324:77:10" + }, + "nativeSrc": "15324:79:10", + "nodeType": "YulFunctionCall", + "src": "15324:79:10" + }, + "nativeSrc": "15324:79:10", + "nodeType": "YulExpressionStatement", + "src": "15324:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15301:6:10", + "nodeType": "YulIdentifier", + "src": "15301:6:10" + }, + { + "kind": "number", + "nativeSrc": "15309:4:10", + "nodeType": "YulLiteral", + "src": "15309:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15297:3:10", + "nodeType": "YulIdentifier", + "src": "15297:3:10" + }, + "nativeSrc": "15297:17:10", + "nodeType": "YulFunctionCall", + "src": "15297:17:10" + }, + { + "name": "end", + "nativeSrc": "15316:3:10", + "nodeType": "YulIdentifier", + "src": "15316:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15293:3:10", + "nodeType": "YulIdentifier", + "src": "15293:3:10" + }, + "nativeSrc": "15293:27:10", + "nodeType": "YulFunctionCall", + "src": "15293:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "15286:6:10", + "nodeType": "YulIdentifier", + "src": "15286:6:10" + }, + "nativeSrc": "15286:35:10", + "nodeType": "YulFunctionCall", + "src": "15286:35:10" + }, + "nativeSrc": "15283:122:10", + "nodeType": "YulIf", + "src": "15283:122:10" + }, + { + "nativeSrc": "15414:34:10", + "nodeType": "YulVariableDeclaration", + "src": "15414:34:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15441:6:10", + "nodeType": "YulIdentifier", + "src": "15441:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15428:12:10", + "nodeType": "YulIdentifier", + "src": "15428:12:10" + }, + "nativeSrc": "15428:20:10", + "nodeType": "YulFunctionCall", + "src": "15428:20:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "15418:6:10", + "nodeType": "YulTypedName", + "src": "15418:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "15457:103:10", + "nodeType": "YulAssignment", + "src": "15457:103:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15533:6:10", + "nodeType": "YulIdentifier", + "src": "15533:6:10" + }, + { + "kind": "number", + "nativeSrc": "15541:4:10", + "nodeType": "YulLiteral", + "src": "15541:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15529:3:10", + "nodeType": "YulIdentifier", + "src": "15529:3:10" + }, + "nativeSrc": "15529:17:10", + "nodeType": "YulFunctionCall", + "src": "15529:17:10" + }, + { + "name": "length", + "nativeSrc": "15548:6:10", + "nodeType": "YulIdentifier", + "src": "15548:6:10" + }, + { + "name": "end", + "nativeSrc": "15556:3:10", + "nodeType": "YulIdentifier", + "src": "15556:3:10" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "15466:62:10", + "nodeType": "YulIdentifier", + "src": "15466:62:10" + }, + "nativeSrc": "15466:94:10", + "nodeType": "YulFunctionCall", + "src": "15466:94:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "15457:5:10", + "nodeType": "YulIdentifier", + "src": "15457:5:10" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "15196:370:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "15251:6:10", + "nodeType": "YulTypedName", + "src": "15251:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "15259:3:10", + "nodeType": "YulTypedName", + "src": "15259:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "15267:5:10", + "nodeType": "YulTypedName", + "src": "15267:5:10", + "type": "" + } + ], + "src": "15196:370:10" + }, + { + "body": { + "nativeSrc": "15690:746:10", + "nodeType": "YulBlock", + "src": "15690:746:10", + "statements": [ + { + "body": { + "nativeSrc": "15736:83:10", + "nodeType": "YulBlock", + "src": "15736:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "15738:77:10", + "nodeType": "YulIdentifier", + "src": "15738:77:10" + }, + "nativeSrc": "15738:79:10", + "nodeType": "YulFunctionCall", + "src": "15738:79:10" + }, + "nativeSrc": "15738:79:10", + "nodeType": "YulExpressionStatement", + "src": "15738:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "15711:7:10", + "nodeType": "YulIdentifier", + "src": "15711:7:10" + }, + { + "name": "headStart", + "nativeSrc": "15720:9:10", + "nodeType": "YulIdentifier", + "src": "15720:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15707:3:10", + "nodeType": "YulIdentifier", + "src": "15707:3:10" + }, + "nativeSrc": "15707:23:10", + "nodeType": "YulFunctionCall", + "src": "15707:23:10" + }, + { + "kind": "number", + "nativeSrc": "15732:2:10", + "nodeType": "YulLiteral", + "src": "15732:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15703:3:10", + "nodeType": "YulIdentifier", + "src": "15703:3:10" + }, + "nativeSrc": "15703:32:10", + "nodeType": "YulFunctionCall", + "src": "15703:32:10" + }, + "nativeSrc": "15700:119:10", + "nodeType": "YulIf", + "src": "15700:119:10" + }, + { + "nativeSrc": "15829:287:10", + "nodeType": "YulBlock", + "src": "15829:287:10", + "statements": [ + { + "nativeSrc": "15844:45:10", + "nodeType": "YulVariableDeclaration", + "src": "15844:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15875:9:10", + "nodeType": "YulIdentifier", + "src": "15875:9:10" + }, + { + "kind": "number", + "nativeSrc": "15886:1:10", + "nodeType": "YulLiteral", + "src": "15886:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15871:3:10", + "nodeType": "YulIdentifier", + "src": "15871:3:10" + }, + "nativeSrc": "15871:17:10", + "nodeType": "YulFunctionCall", + "src": "15871:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15858:12:10", + "nodeType": "YulIdentifier", + "src": "15858:12:10" + }, + "nativeSrc": "15858:31:10", + "nodeType": "YulFunctionCall", + "src": "15858:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "15848:6:10", + "nodeType": "YulTypedName", + "src": "15848:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15936:83:10", + "nodeType": "YulBlock", + "src": "15936:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "15938:77:10", + "nodeType": "YulIdentifier", + "src": "15938:77:10" + }, + "nativeSrc": "15938:79:10", + "nodeType": "YulFunctionCall", + "src": "15938:79:10" + }, + "nativeSrc": "15938:79:10", + "nodeType": "YulExpressionStatement", + "src": "15938:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15908:6:10", + "nodeType": "YulIdentifier", + "src": "15908:6:10" + }, + { + "kind": "number", + "nativeSrc": "15916:18:10", + "nodeType": "YulLiteral", + "src": "15916:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15905:2:10", + "nodeType": "YulIdentifier", + "src": "15905:2:10" + }, + "nativeSrc": "15905:30:10", + "nodeType": "YulFunctionCall", + "src": "15905:30:10" + }, + "nativeSrc": "15902:117:10", + "nodeType": "YulIf", + "src": "15902:117:10" + }, + { + "nativeSrc": "16033:73:10", + "nodeType": "YulAssignment", + "src": "16033:73:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16078:9:10", + "nodeType": "YulIdentifier", + "src": "16078:9:10" + }, + { + "name": "offset", + "nativeSrc": "16089:6:10", + "nodeType": "YulIdentifier", + "src": "16089:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16074:3:10", + "nodeType": "YulIdentifier", + "src": "16074:3:10" + }, + "nativeSrc": "16074:22:10", + "nodeType": "YulFunctionCall", + "src": "16074:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "16098:7:10", + "nodeType": "YulIdentifier", + "src": "16098:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "16043:30:10", + "nodeType": "YulIdentifier", + "src": "16043:30:10" + }, + "nativeSrc": "16043:63:10", + "nodeType": "YulFunctionCall", + "src": "16043:63:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16033:6:10", + "nodeType": "YulIdentifier", + "src": "16033:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "16126:303:10", + "nodeType": "YulBlock", + "src": "16126:303:10", + "statements": [ + { + "nativeSrc": "16141:46:10", + "nodeType": "YulVariableDeclaration", + "src": "16141:46:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16172:9:10", + "nodeType": "YulIdentifier", + "src": "16172:9:10" + }, + { + "kind": "number", + "nativeSrc": "16183:2:10", + "nodeType": "YulLiteral", + "src": "16183:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16168:3:10", + "nodeType": "YulIdentifier", + "src": "16168:3:10" + }, + "nativeSrc": "16168:18:10", + "nodeType": "YulFunctionCall", + "src": "16168:18:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16155:12:10", + "nodeType": "YulIdentifier", + "src": "16155:12:10" + }, + "nativeSrc": "16155:32:10", + "nodeType": "YulFunctionCall", + "src": "16155:32:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16145:6:10", + "nodeType": "YulTypedName", + "src": "16145:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16234:83:10", + "nodeType": "YulBlock", + "src": "16234:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "16236:77:10", + "nodeType": "YulIdentifier", + "src": "16236:77:10" + }, + "nativeSrc": "16236:79:10", + "nodeType": "YulFunctionCall", + "src": "16236:79:10" + }, + "nativeSrc": "16236:79:10", + "nodeType": "YulExpressionStatement", + "src": "16236:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16206:6:10", + "nodeType": "YulIdentifier", + "src": "16206:6:10" + }, + { + "kind": "number", + "nativeSrc": "16214:18:10", + "nodeType": "YulLiteral", + "src": "16214:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16203:2:10", + "nodeType": "YulIdentifier", + "src": "16203:2:10" + }, + "nativeSrc": "16203:30:10", + "nodeType": "YulFunctionCall", + "src": "16203:30:10" + }, + "nativeSrc": "16200:117:10", + "nodeType": "YulIf", + "src": "16200:117:10" + }, + { + "nativeSrc": "16331:88:10", + "nodeType": "YulAssignment", + "src": "16331:88:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16391:9:10", + "nodeType": "YulIdentifier", + "src": "16391:9:10" + }, + { + "name": "offset", + "nativeSrc": "16402:6:10", + "nodeType": "YulIdentifier", + "src": "16402:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16387:3:10", + "nodeType": "YulIdentifier", + "src": "16387:3:10" + }, + "nativeSrc": "16387:22:10", + "nodeType": "YulFunctionCall", + "src": "16387:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "16411:7:10", + "nodeType": "YulIdentifier", + "src": "16411:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "16341:45:10", + "nodeType": "YulIdentifier", + "src": "16341:45:10" + }, + "nativeSrc": "16341:78:10", + "nodeType": "YulFunctionCall", + "src": "16341:78:10" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16331:6:10", + "nodeType": "YulIdentifier", + "src": "16331:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "15572:864:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15652:9:10", + "nodeType": "YulTypedName", + "src": "15652:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "15663:7:10", + "nodeType": "YulTypedName", + "src": "15663:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "15675:6:10", + "nodeType": "YulTypedName", + "src": "15675:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15683:6:10", + "nodeType": "YulTypedName", + "src": "15683:6:10", + "type": "" + } + ], + "src": "15572:864:10" + }, + { + "body": { + "nativeSrc": "16470:152:10", + "nodeType": "YulBlock", + "src": "16470:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16487:1:10", + "nodeType": "YulLiteral", + "src": "16487:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16490:77:10", + "nodeType": "YulLiteral", + "src": "16490:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16480:6:10", + "nodeType": "YulIdentifier", + "src": "16480:6:10" + }, + "nativeSrc": "16480:88:10", + "nodeType": "YulFunctionCall", + "src": "16480:88:10" + }, + "nativeSrc": "16480:88:10", + "nodeType": "YulExpressionStatement", + "src": "16480:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16584:1:10", + "nodeType": "YulLiteral", + "src": "16584:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "16587:4:10", + "nodeType": "YulLiteral", + "src": "16587:4:10", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16577:6:10", + "nodeType": "YulIdentifier", + "src": "16577:6:10" + }, + "nativeSrc": "16577:15:10", + "nodeType": "YulFunctionCall", + "src": "16577:15:10" + }, + "nativeSrc": "16577:15:10", + "nodeType": "YulExpressionStatement", + "src": "16577:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16608:1:10", + "nodeType": "YulLiteral", + "src": "16608:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16611:4:10", + "nodeType": "YulLiteral", + "src": "16611:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16601:6:10", + "nodeType": "YulIdentifier", + "src": "16601:6:10" + }, + "nativeSrc": "16601:15:10", + "nodeType": "YulFunctionCall", + "src": "16601:15:10" + }, + "nativeSrc": "16601:15:10", + "nodeType": "YulExpressionStatement", + "src": "16601:15:10" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "16442:180:10", + "nodeType": "YulFunctionDefinition", + "src": "16442:180:10" + }, + { + "body": { + "nativeSrc": "16679:269:10", + "nodeType": "YulBlock", + "src": "16679:269:10", + "statements": [ + { + "nativeSrc": "16689:22:10", + "nodeType": "YulAssignment", + "src": "16689:22:10", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "16703:4:10", + "nodeType": "YulIdentifier", + "src": "16703:4:10" + }, + { + "kind": "number", + "nativeSrc": "16709:1:10", + "nodeType": "YulLiteral", + "src": "16709:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "16699:3:10", + "nodeType": "YulIdentifier", + "src": "16699:3:10" + }, + "nativeSrc": "16699:12:10", + "nodeType": "YulFunctionCall", + "src": "16699:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "16689:6:10", + "nodeType": "YulIdentifier", + "src": "16689:6:10" + } + ] + }, + { + "nativeSrc": "16720:38:10", + "nodeType": "YulVariableDeclaration", + "src": "16720:38:10", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "16750:4:10", + "nodeType": "YulIdentifier", + "src": "16750:4:10" + }, + { + "kind": "number", + "nativeSrc": "16756:1:10", + "nodeType": "YulLiteral", + "src": "16756:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16746:3:10", + "nodeType": "YulIdentifier", + "src": "16746:3:10" + }, + "nativeSrc": "16746:12:10", + "nodeType": "YulFunctionCall", + "src": "16746:12:10" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16724:18:10", + "nodeType": "YulTypedName", + "src": "16724:18:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16797:51:10", + "nodeType": "YulBlock", + "src": "16797:51:10", + "statements": [ + { + "nativeSrc": "16811:27:10", + "nodeType": "YulAssignment", + "src": "16811:27:10", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "16825:6:10", + "nodeType": "YulIdentifier", + "src": "16825:6:10" + }, + { + "kind": "number", + "nativeSrc": "16833:4:10", + "nodeType": "YulLiteral", + "src": "16833:4:10", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16821:3:10", + "nodeType": "YulIdentifier", + "src": "16821:3:10" + }, + "nativeSrc": "16821:17:10", + "nodeType": "YulFunctionCall", + "src": "16821:17:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "16811:6:10", + "nodeType": "YulIdentifier", + "src": "16811:6:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16777:18:10", + "nodeType": "YulIdentifier", + "src": "16777:18:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16770:6:10", + "nodeType": "YulIdentifier", + "src": "16770:6:10" + }, + "nativeSrc": "16770:26:10", + "nodeType": "YulFunctionCall", + "src": "16770:26:10" + }, + "nativeSrc": "16767:81:10", + "nodeType": "YulIf", + "src": "16767:81:10" + }, + { + "body": { + "nativeSrc": "16900:42:10", + "nodeType": "YulBlock", + "src": "16900:42:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "16914:16:10", + "nodeType": "YulIdentifier", + "src": "16914:16:10" + }, + "nativeSrc": "16914:18:10", + "nodeType": "YulFunctionCall", + "src": "16914:18:10" + }, + "nativeSrc": "16914:18:10", + "nodeType": "YulExpressionStatement", + "src": "16914:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16864:18:10", + "nodeType": "YulIdentifier", + "src": "16864:18:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "16887:6:10", + "nodeType": "YulIdentifier", + "src": "16887:6:10" + }, + { + "kind": "number", + "nativeSrc": "16895:2:10", + "nodeType": "YulLiteral", + "src": "16895:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16884:2:10", + "nodeType": "YulIdentifier", + "src": "16884:2:10" + }, + "nativeSrc": "16884:14:10", + "nodeType": "YulFunctionCall", + "src": "16884:14:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "16861:2:10", + "nodeType": "YulIdentifier", + "src": "16861:2:10" + }, + "nativeSrc": "16861:38:10", + "nodeType": "YulFunctionCall", + "src": "16861:38:10" + }, + "nativeSrc": "16858:84:10", + "nodeType": "YulIf", + "src": "16858:84:10" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "16628:320:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "16663:4:10", + "nodeType": "YulTypedName", + "src": "16663:4:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "16672:6:10", + "nodeType": "YulTypedName", + "src": "16672:6:10", + "type": "" + } + ], + "src": "16628:320:10" + }, + { + "body": { + "nativeSrc": "17020:31:10", + "nodeType": "YulBlock", + "src": "17020:31:10", + "statements": [ + { + "nativeSrc": "17031:13:10", + "nodeType": "YulAssignment", + "src": "17031:13:10", + "value": { + "name": "len", + "nativeSrc": "17041:3:10", + "nodeType": "YulIdentifier", + "src": "17041:3:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "17031:6:10", + "nodeType": "YulIdentifier", + "src": "17031:6:10" + } + ] + } + ] + }, + "name": "array_length_t_string_calldata_ptr", + "nativeSrc": "16954:97:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16998:5:10", + "nodeType": "YulTypedName", + "src": "16998:5:10", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17005:3:10", + "nodeType": "YulTypedName", + "src": "17005:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "17013:6:10", + "nodeType": "YulTypedName", + "src": "17013:6:10", + "type": "" + } + ], + "src": "16954:97:10" + }, + { + "body": { + "nativeSrc": "17111:87:10", + "nodeType": "YulBlock", + "src": "17111:87:10", + "statements": [ + { + "nativeSrc": "17121:11:10", + "nodeType": "YulAssignment", + "src": "17121:11:10", + "value": { + "name": "ptr", + "nativeSrc": "17129:3:10", + "nodeType": "YulIdentifier", + "src": "17129:3:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "17121:4:10", + "nodeType": "YulIdentifier", + "src": "17121:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17149:1:10", + "nodeType": "YulLiteral", + "src": "17149:1:10", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "17152:3:10", + "nodeType": "YulIdentifier", + "src": "17152:3:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17142:6:10", + "nodeType": "YulIdentifier", + "src": "17142:6:10" + }, + "nativeSrc": "17142:14:10", + "nodeType": "YulFunctionCall", + "src": "17142:14:10" + }, + "nativeSrc": "17142:14:10", + "nodeType": "YulExpressionStatement", + "src": "17142:14:10" + }, + { + "nativeSrc": "17165:26:10", + "nodeType": "YulAssignment", + "src": "17165:26:10", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17183:1:10", + "nodeType": "YulLiteral", + "src": "17183:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17186:4:10", + "nodeType": "YulLiteral", + "src": "17186:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "17173:9:10", + "nodeType": "YulIdentifier", + "src": "17173:9:10" + }, + "nativeSrc": "17173:18:10", + "nodeType": "YulFunctionCall", + "src": "17173:18:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "17165:4:10", + "nodeType": "YulIdentifier", + "src": "17165:4:10" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "17057:141:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "17098:3:10", + "nodeType": "YulTypedName", + "src": "17098:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "17106:4:10", + "nodeType": "YulTypedName", + "src": "17106:4:10", + "type": "" + } + ], + "src": "17057:141:10" + }, + { + "body": { + "nativeSrc": "17248:49:10", + "nodeType": "YulBlock", + "src": "17248:49:10", + "statements": [ + { + "nativeSrc": "17258:33:10", + "nodeType": "YulAssignment", + "src": "17258:33:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17276:5:10", + "nodeType": "YulIdentifier", + "src": "17276:5:10" + }, + { + "kind": "number", + "nativeSrc": "17283:2:10", + "nodeType": "YulLiteral", + "src": "17283:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17272:3:10", + "nodeType": "YulIdentifier", + "src": "17272:3:10" + }, + "nativeSrc": "17272:14:10", + "nodeType": "YulFunctionCall", + "src": "17272:14:10" + }, + { + "kind": "number", + "nativeSrc": "17288:2:10", + "nodeType": "YulLiteral", + "src": "17288:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "17268:3:10", + "nodeType": "YulIdentifier", + "src": "17268:3:10" + }, + "nativeSrc": "17268:23:10", + "nodeType": "YulFunctionCall", + "src": "17268:23:10" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "17258:6:10", + "nodeType": "YulIdentifier", + "src": "17258:6:10" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "17204:93:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17231:5:10", + "nodeType": "YulTypedName", + "src": "17231:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "17241:6:10", + "nodeType": "YulTypedName", + "src": "17241:6:10", + "type": "" + } + ], + "src": "17204:93:10" + }, + { + "body": { + "nativeSrc": "17356:54:10", + "nodeType": "YulBlock", + "src": "17356:54:10", + "statements": [ + { + "nativeSrc": "17366:37:10", + "nodeType": "YulAssignment", + "src": "17366:37:10", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "17391:4:10", + "nodeType": "YulIdentifier", + "src": "17391:4:10" + }, + { + "name": "value", + "nativeSrc": "17397:5:10", + "nodeType": "YulIdentifier", + "src": "17397:5:10" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "17387:3:10", + "nodeType": "YulIdentifier", + "src": "17387:3:10" + }, + "nativeSrc": "17387:16:10", + "nodeType": "YulFunctionCall", + "src": "17387:16:10" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "17366:8:10", + "nodeType": "YulIdentifier", + "src": "17366:8:10" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "17303:107:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "17331:4:10", + "nodeType": "YulTypedName", + "src": "17331:4:10", + "type": "" + }, + { + "name": "value", + "nativeSrc": "17337:5:10", + "nodeType": "YulTypedName", + "src": "17337:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "17347:8:10", + "nodeType": "YulTypedName", + "src": "17347:8:10", + "type": "" + } + ], + "src": "17303:107:10" + }, + { + "body": { + "nativeSrc": "17492:317:10", + "nodeType": "YulBlock", + "src": "17492:317:10", + "statements": [ + { + "nativeSrc": "17502:35:10", + "nodeType": "YulVariableDeclaration", + "src": "17502:35:10", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "17523:10:10", + "nodeType": "YulIdentifier", + "src": "17523:10:10" + }, + { + "kind": "number", + "nativeSrc": "17535:1:10", + "nodeType": "YulLiteral", + "src": "17535:1:10", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "17519:3:10", + "nodeType": "YulIdentifier", + "src": "17519:3:10" + }, + "nativeSrc": "17519:18:10", + "nodeType": "YulFunctionCall", + "src": "17519:18:10" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "17506:9:10", + "nodeType": "YulTypedName", + "src": "17506:9:10", + "type": "" + } + ] + }, + { + "nativeSrc": "17546:109:10", + "nodeType": "YulVariableDeclaration", + "src": "17546:109:10", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "17577:9:10", + "nodeType": "YulIdentifier", + "src": "17577:9:10" + }, + { + "kind": "number", + "nativeSrc": "17588:66:10", + "nodeType": "YulLiteral", + "src": "17588:66:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "17558:18:10", + "nodeType": "YulIdentifier", + "src": "17558:18:10" + }, + "nativeSrc": "17558:97:10", + "nodeType": "YulFunctionCall", + "src": "17558:97:10" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "17550:4:10", + "nodeType": "YulTypedName", + "src": "17550:4:10", + "type": "" + } + ] + }, + { + "nativeSrc": "17664:51:10", + "nodeType": "YulAssignment", + "src": "17664:51:10", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "17695:9:10", + "nodeType": "YulIdentifier", + "src": "17695:9:10" + }, + { + "name": "toInsert", + "nativeSrc": "17706:8:10", + "nodeType": "YulIdentifier", + "src": "17706:8:10" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "17676:18:10", + "nodeType": "YulIdentifier", + "src": "17676:18:10" + }, + "nativeSrc": "17676:39:10", + "nodeType": "YulFunctionCall", + "src": "17676:39:10" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "17664:8:10", + "nodeType": "YulIdentifier", + "src": "17664:8:10" + } + ] + }, + { + "nativeSrc": "17724:30:10", + "nodeType": "YulAssignment", + "src": "17724:30:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17737:5:10", + "nodeType": "YulIdentifier", + "src": "17737:5:10" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "17748:4:10", + "nodeType": "YulIdentifier", + "src": "17748:4:10" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "17744:3:10", + "nodeType": "YulIdentifier", + "src": "17744:3:10" + }, + "nativeSrc": "17744:9:10", + "nodeType": "YulFunctionCall", + "src": "17744:9:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17733:3:10", + "nodeType": "YulIdentifier", + "src": "17733:3:10" + }, + "nativeSrc": "17733:21:10", + "nodeType": "YulFunctionCall", + "src": "17733:21:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17724:5:10", + "nodeType": "YulIdentifier", + "src": "17724:5:10" + } + ] + }, + { + "nativeSrc": "17763:40:10", + "nodeType": "YulAssignment", + "src": "17763:40:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17776:5:10", + "nodeType": "YulIdentifier", + "src": "17776:5:10" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "17787:8:10", + "nodeType": "YulIdentifier", + "src": "17787:8:10" + }, + { + "name": "mask", + "nativeSrc": "17797:4:10", + "nodeType": "YulIdentifier", + "src": "17797:4:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17783:3:10", + "nodeType": "YulIdentifier", + "src": "17783:3:10" + }, + "nativeSrc": "17783:19:10", + "nodeType": "YulFunctionCall", + "src": "17783:19:10" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "17773:2:10", + "nodeType": "YulIdentifier", + "src": "17773:2:10" + }, + "nativeSrc": "17773:30:10", + "nodeType": "YulFunctionCall", + "src": "17773:30:10" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "17763:6:10", + "nodeType": "YulIdentifier", + "src": "17763:6:10" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "17416:393:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17453:5:10", + "nodeType": "YulTypedName", + "src": "17453:5:10", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "17460:10:10", + "nodeType": "YulTypedName", + "src": "17460:10:10", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "17472:8:10", + "nodeType": "YulTypedName", + "src": "17472:8:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "17485:6:10", + "nodeType": "YulTypedName", + "src": "17485:6:10", + "type": "" + } + ], + "src": "17416:393:10" + }, + { + "body": { + "nativeSrc": "17860:32:10", + "nodeType": "YulBlock", + "src": "17860:32:10", + "statements": [ + { + "nativeSrc": "17870:16:10", + "nodeType": "YulAssignment", + "src": "17870:16:10", + "value": { + "name": "value", + "nativeSrc": "17881:5:10", + "nodeType": "YulIdentifier", + "src": "17881:5:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "17870:7:10", + "nodeType": "YulIdentifier", + "src": "17870:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "17815:77:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17842:5:10", + "nodeType": "YulTypedName", + "src": "17842:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "17852:7:10", + "nodeType": "YulTypedName", + "src": "17852:7:10", + "type": "" + } + ], + "src": "17815:77:10" + }, + { + "body": { + "nativeSrc": "17930:28:10", + "nodeType": "YulBlock", + "src": "17930:28:10", + "statements": [ + { + "nativeSrc": "17940:12:10", + "nodeType": "YulAssignment", + "src": "17940:12:10", + "value": { + "name": "value", + "nativeSrc": "17947:5:10", + "nodeType": "YulIdentifier", + "src": "17947:5:10" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17940:3:10", + "nodeType": "YulIdentifier", + "src": "17940:3:10" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "17898:60:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17916:5:10", + "nodeType": "YulTypedName", + "src": "17916:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17926:3:10", + "nodeType": "YulTypedName", + "src": "17926:3:10", + "type": "" + } + ], + "src": "17898:60:10" + }, + { + "body": { + "nativeSrc": "18024:82:10", + "nodeType": "YulBlock", + "src": "18024:82:10", + "statements": [ + { + "nativeSrc": "18034:66:10", + "nodeType": "YulAssignment", + "src": "18034:66:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18092:5:10", + "nodeType": "YulIdentifier", + "src": "18092:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "18074:17:10", + "nodeType": "YulIdentifier", + "src": "18074:17:10" + }, + "nativeSrc": "18074:24:10", + "nodeType": "YulFunctionCall", + "src": "18074:24:10" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "18065:8:10", + "nodeType": "YulIdentifier", + "src": "18065:8:10" + }, + "nativeSrc": "18065:34:10", + "nodeType": "YulFunctionCall", + "src": "18065:34:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "18047:17:10", + "nodeType": "YulIdentifier", + "src": "18047:17:10" + }, + "nativeSrc": "18047:53:10", + "nodeType": "YulFunctionCall", + "src": "18047:53:10" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "18034:9:10", + "nodeType": "YulIdentifier", + "src": "18034:9:10" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "17964:142:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "18004:5:10", + "nodeType": "YulTypedName", + "src": "18004:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "18014:9:10", + "nodeType": "YulTypedName", + "src": "18014:9:10", + "type": "" + } + ], + "src": "17964:142:10" + }, + { + "body": { + "nativeSrc": "18159:28:10", + "nodeType": "YulBlock", + "src": "18159:28:10", + "statements": [ + { + "nativeSrc": "18169:12:10", + "nodeType": "YulAssignment", + "src": "18169:12:10", + "value": { + "name": "value", + "nativeSrc": "18176:5:10", + "nodeType": "YulIdentifier", + "src": "18176:5:10" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "18169:3:10", + "nodeType": "YulIdentifier", + "src": "18169:3:10" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "18112:75:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "18145:5:10", + "nodeType": "YulTypedName", + "src": "18145:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "18155:3:10", + "nodeType": "YulTypedName", + "src": "18155:3:10", + "type": "" + } + ], + "src": "18112:75:10" + }, + { + "body": { + "nativeSrc": "18269:193:10", + "nodeType": "YulBlock", + "src": "18269:193:10", + "statements": [ + { + "nativeSrc": "18279:63:10", + "nodeType": "YulVariableDeclaration", + "src": "18279:63:10", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "18334:7:10", + "nodeType": "YulIdentifier", + "src": "18334:7:10" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "18303:30:10", + "nodeType": "YulIdentifier", + "src": "18303:30:10" + }, + "nativeSrc": "18303:39:10", + "nodeType": "YulFunctionCall", + "src": "18303:39:10" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "18283:16:10", + "nodeType": "YulTypedName", + "src": "18283:16:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18358:4:10", + "nodeType": "YulIdentifier", + "src": "18358:4:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18398:4:10", + "nodeType": "YulIdentifier", + "src": "18398:4:10" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18392:5:10", + "nodeType": "YulIdentifier", + "src": "18392:5:10" + }, + "nativeSrc": "18392:11:10", + "nodeType": "YulFunctionCall", + "src": "18392:11:10" + }, + { + "name": "offset", + "nativeSrc": "18405:6:10", + "nodeType": "YulIdentifier", + "src": "18405:6:10" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "18437:16:10", + "nodeType": "YulIdentifier", + "src": "18437:16:10" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "18413:23:10", + "nodeType": "YulIdentifier", + "src": "18413:23:10" + }, + "nativeSrc": "18413:41:10", + "nodeType": "YulFunctionCall", + "src": "18413:41:10" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "18364:27:10", + "nodeType": "YulIdentifier", + "src": "18364:27:10" + }, + "nativeSrc": "18364:91:10", + "nodeType": "YulFunctionCall", + "src": "18364:91:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18351:6:10", + "nodeType": "YulIdentifier", + "src": "18351:6:10" + }, + "nativeSrc": "18351:105:10", + "nodeType": "YulFunctionCall", + "src": "18351:105:10" + }, + "nativeSrc": "18351:105:10", + "nodeType": "YulExpressionStatement", + "src": "18351:105:10" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "18193:269:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18246:4:10", + "nodeType": "YulTypedName", + "src": "18246:4:10", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "18252:6:10", + "nodeType": "YulTypedName", + "src": "18252:6:10", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "18260:7:10", + "nodeType": "YulTypedName", + "src": "18260:7:10", + "type": "" + } + ], + "src": "18193:269:10" + }, + { + "body": { + "nativeSrc": "18517:24:10", + "nodeType": "YulBlock", + "src": "18517:24:10", + "statements": [ + { + "nativeSrc": "18527:8:10", + "nodeType": "YulAssignment", + "src": "18527:8:10", + "value": { + "kind": "number", + "nativeSrc": "18534:1:10", + "nodeType": "YulLiteral", + "src": "18534:1:10", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "18527:3:10", + "nodeType": "YulIdentifier", + "src": "18527:3:10" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "18468:73:10", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "18513:3:10", + "nodeType": "YulTypedName", + "src": "18513:3:10", + "type": "" + } + ], + "src": "18468:73:10" + }, + { + "body": { + "nativeSrc": "18600:136:10", + "nodeType": "YulBlock", + "src": "18600:136:10", + "statements": [ + { + "nativeSrc": "18610:46:10", + "nodeType": "YulVariableDeclaration", + "src": "18610:46:10", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "18624:30:10", + "nodeType": "YulIdentifier", + "src": "18624:30:10" + }, + "nativeSrc": "18624:32:10", + "nodeType": "YulFunctionCall", + "src": "18624:32:10" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "18614:6:10", + "nodeType": "YulTypedName", + "src": "18614:6:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18709:4:10", + "nodeType": "YulIdentifier", + "src": "18709:4:10" + }, + { + "name": "offset", + "nativeSrc": "18715:6:10", + "nodeType": "YulIdentifier", + "src": "18715:6:10" + }, + { + "name": "zero_0", + "nativeSrc": "18723:6:10", + "nodeType": "YulIdentifier", + "src": "18723:6:10" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "18665:43:10", + "nodeType": "YulIdentifier", + "src": "18665:43:10" + }, + "nativeSrc": "18665:65:10", + "nodeType": "YulFunctionCall", + "src": "18665:65:10" + }, + "nativeSrc": "18665:65:10", + "nodeType": "YulExpressionStatement", + "src": "18665:65:10" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "18547:189:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18586:4:10", + "nodeType": "YulTypedName", + "src": "18586:4:10", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "18592:6:10", + "nodeType": "YulTypedName", + "src": "18592:6:10", + "type": "" + } + ], + "src": "18547:189:10" + }, + { + "body": { + "nativeSrc": "18792:136:10", + "nodeType": "YulBlock", + "src": "18792:136:10", + "statements": [ + { + "body": { + "nativeSrc": "18859:63:10", + "nodeType": "YulBlock", + "src": "18859:63:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18903:5:10", + "nodeType": "YulIdentifier", + "src": "18903:5:10" + }, + { + "kind": "number", + "nativeSrc": "18910:1:10", + "nodeType": "YulLiteral", + "src": "18910:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "18873:29:10", + "nodeType": "YulIdentifier", + "src": "18873:29:10" + }, + "nativeSrc": "18873:39:10", + "nodeType": "YulFunctionCall", + "src": "18873:39:10" + }, + "nativeSrc": "18873:39:10", + "nodeType": "YulExpressionStatement", + "src": "18873:39:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18812:5:10", + "nodeType": "YulIdentifier", + "src": "18812:5:10" + }, + { + "name": "end", + "nativeSrc": "18819:3:10", + "nodeType": "YulIdentifier", + "src": "18819:3:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18809:2:10", + "nodeType": "YulIdentifier", + "src": "18809:2:10" + }, + "nativeSrc": "18809:14:10", + "nodeType": "YulFunctionCall", + "src": "18809:14:10" + }, + "nativeSrc": "18802:120:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18824:26:10", + "nodeType": "YulBlock", + "src": "18824:26:10", + "statements": [ + { + "nativeSrc": "18826:22:10", + "nodeType": "YulAssignment", + "src": "18826:22:10", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18839:5:10", + "nodeType": "YulIdentifier", + "src": "18839:5:10" + }, + { + "kind": "number", + "nativeSrc": "18846:1:10", + "nodeType": "YulLiteral", + "src": "18846:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18835:3:10", + "nodeType": "YulIdentifier", + "src": "18835:3:10" + }, + "nativeSrc": "18835:13:10", + "nodeType": "YulFunctionCall", + "src": "18835:13:10" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "18826:5:10", + "nodeType": "YulIdentifier", + "src": "18826:5:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18806:2:10", + "nodeType": "YulBlock", + "src": "18806:2:10", + "statements": [] + }, + "src": "18802:120:10" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "18742:186:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "18780:5:10", + "nodeType": "YulTypedName", + "src": "18780:5:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "18787:3:10", + "nodeType": "YulTypedName", + "src": "18787:3:10", + "type": "" + } + ], + "src": "18742:186:10" + }, + { + "body": { + "nativeSrc": "19013:464:10", + "nodeType": "YulBlock", + "src": "19013:464:10", + "statements": [ + { + "body": { + "nativeSrc": "19039:431:10", + "nodeType": "YulBlock", + "src": "19039:431:10", + "statements": [ + { + "nativeSrc": "19053:54:10", + "nodeType": "YulVariableDeclaration", + "src": "19053:54:10", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "19101:5:10", + "nodeType": "YulIdentifier", + "src": "19101:5:10" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "19069:31:10", + "nodeType": "YulIdentifier", + "src": "19069:31:10" + }, + "nativeSrc": "19069:38:10", + "nodeType": "YulFunctionCall", + "src": "19069:38:10" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "19057:8:10", + "nodeType": "YulTypedName", + "src": "19057:8:10", + "type": "" + } + ] + }, + { + "nativeSrc": "19120:63:10", + "nodeType": "YulVariableDeclaration", + "src": "19120:63:10", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "19143:8:10", + "nodeType": "YulIdentifier", + "src": "19143:8:10" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "19171:10:10", + "nodeType": "YulIdentifier", + "src": "19171:10:10" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "19153:17:10", + "nodeType": "YulIdentifier", + "src": "19153:17:10" + }, + "nativeSrc": "19153:29:10", + "nodeType": "YulFunctionCall", + "src": "19153:29:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19139:3:10", + "nodeType": "YulIdentifier", + "src": "19139:3:10" + }, + "nativeSrc": "19139:44:10", + "nodeType": "YulFunctionCall", + "src": "19139:44:10" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "19124:11:10", + "nodeType": "YulTypedName", + "src": "19124:11:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19340:27:10", + "nodeType": "YulBlock", + "src": "19340:27:10", + "statements": [ + { + "nativeSrc": "19342:23:10", + "nodeType": "YulAssignment", + "src": "19342:23:10", + "value": { + "name": "dataArea", + "nativeSrc": "19357:8:10", + "nodeType": "YulIdentifier", + "src": "19357:8:10" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "19342:11:10", + "nodeType": "YulIdentifier", + "src": "19342:11:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "19324:10:10", + "nodeType": "YulIdentifier", + "src": "19324:10:10" + }, + { + "kind": "number", + "nativeSrc": "19336:2:10", + "nodeType": "YulLiteral", + "src": "19336:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19321:2:10", + "nodeType": "YulIdentifier", + "src": "19321:2:10" + }, + "nativeSrc": "19321:18:10", + "nodeType": "YulFunctionCall", + "src": "19321:18:10" + }, + "nativeSrc": "19318:49:10", + "nodeType": "YulIf", + "src": "19318:49:10" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "19409:11:10", + "nodeType": "YulIdentifier", + "src": "19409:11:10" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "19426:8:10", + "nodeType": "YulIdentifier", + "src": "19426:8:10" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "19454:3:10", + "nodeType": "YulIdentifier", + "src": "19454:3:10" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "19436:17:10", + "nodeType": "YulIdentifier", + "src": "19436:17:10" + }, + "nativeSrc": "19436:22:10", + "nodeType": "YulFunctionCall", + "src": "19436:22:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19422:3:10", + "nodeType": "YulIdentifier", + "src": "19422:3:10" + }, + "nativeSrc": "19422:37:10", + "nodeType": "YulFunctionCall", + "src": "19422:37:10" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "19380:28:10", + "nodeType": "YulIdentifier", + "src": "19380:28:10" + }, + "nativeSrc": "19380:80:10", + "nodeType": "YulFunctionCall", + "src": "19380:80:10" + }, + "nativeSrc": "19380:80:10", + "nodeType": "YulExpressionStatement", + "src": "19380:80:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "19030:3:10", + "nodeType": "YulIdentifier", + "src": "19030:3:10" + }, + { + "kind": "number", + "nativeSrc": "19035:2:10", + "nodeType": "YulLiteral", + "src": "19035:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19027:2:10", + "nodeType": "YulIdentifier", + "src": "19027:2:10" + }, + "nativeSrc": "19027:11:10", + "nodeType": "YulFunctionCall", + "src": "19027:11:10" + }, + "nativeSrc": "19024:446:10", + "nodeType": "YulIf", + "src": "19024:446:10" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "18934:543:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "18989:5:10", + "nodeType": "YulTypedName", + "src": "18989:5:10", + "type": "" + }, + { + "name": "len", + "nativeSrc": "18996:3:10", + "nodeType": "YulTypedName", + "src": "18996:3:10", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "19001:10:10", + "nodeType": "YulTypedName", + "src": "19001:10:10", + "type": "" + } + ], + "src": "18934:543:10" + }, + { + "body": { + "nativeSrc": "19546:54:10", + "nodeType": "YulBlock", + "src": "19546:54:10", + "statements": [ + { + "nativeSrc": "19556:37:10", + "nodeType": "YulAssignment", + "src": "19556:37:10", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "19581:4:10", + "nodeType": "YulIdentifier", + "src": "19581:4:10" + }, + { + "name": "value", + "nativeSrc": "19587:5:10", + "nodeType": "YulIdentifier", + "src": "19587:5:10" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "19577:3:10", + "nodeType": "YulIdentifier", + "src": "19577:3:10" + }, + "nativeSrc": "19577:16:10", + "nodeType": "YulFunctionCall", + "src": "19577:16:10" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "19556:8:10", + "nodeType": "YulIdentifier", + "src": "19556:8:10" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "19483:117:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "19521:4:10", + "nodeType": "YulTypedName", + "src": "19521:4:10", + "type": "" + }, + { + "name": "value", + "nativeSrc": "19527:5:10", + "nodeType": "YulTypedName", + "src": "19527:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "19537:8:10", + "nodeType": "YulTypedName", + "src": "19537:8:10", + "type": "" + } + ], + "src": "19483:117:10" + }, + { + "body": { + "nativeSrc": "19657:118:10", + "nodeType": "YulBlock", + "src": "19657:118:10", + "statements": [ + { + "nativeSrc": "19667:68:10", + "nodeType": "YulVariableDeclaration", + "src": "19667:68:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19716:1:10", + "nodeType": "YulLiteral", + "src": "19716:1:10", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "19719:5:10", + "nodeType": "YulIdentifier", + "src": "19719:5:10" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19712:3:10", + "nodeType": "YulIdentifier", + "src": "19712:3:10" + }, + "nativeSrc": "19712:13:10", + "nodeType": "YulFunctionCall", + "src": "19712:13:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19731:1:10", + "nodeType": "YulLiteral", + "src": "19731:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19727:3:10", + "nodeType": "YulIdentifier", + "src": "19727:3:10" + }, + "nativeSrc": "19727:6:10", + "nodeType": "YulFunctionCall", + "src": "19727:6:10" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "19683:28:10", + "nodeType": "YulIdentifier", + "src": "19683:28:10" + }, + "nativeSrc": "19683:51:10", + "nodeType": "YulFunctionCall", + "src": "19683:51:10" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19679:3:10", + "nodeType": "YulIdentifier", + "src": "19679:3:10" + }, + "nativeSrc": "19679:56:10", + "nodeType": "YulFunctionCall", + "src": "19679:56:10" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "19671:4:10", + "nodeType": "YulTypedName", + "src": "19671:4:10", + "type": "" + } + ] + }, + { + "nativeSrc": "19744:25:10", + "nodeType": "YulAssignment", + "src": "19744:25:10", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "19758:4:10", + "nodeType": "YulIdentifier", + "src": "19758:4:10" + }, + { + "name": "mask", + "nativeSrc": "19764:4:10", + "nodeType": "YulIdentifier", + "src": "19764:4:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19754:3:10", + "nodeType": "YulIdentifier", + "src": "19754:3:10" + }, + "nativeSrc": "19754:15:10", + "nodeType": "YulFunctionCall", + "src": "19754:15:10" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "19744:6:10", + "nodeType": "YulIdentifier", + "src": "19744:6:10" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "19606:169:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "19634:4:10", + "nodeType": "YulTypedName", + "src": "19634:4:10", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "19640:5:10", + "nodeType": "YulTypedName", + "src": "19640:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "19650:6:10", + "nodeType": "YulTypedName", + "src": "19650:6:10", + "type": "" + } + ], + "src": "19606:169:10" + }, + { + "body": { + "nativeSrc": "19861:214:10", + "nodeType": "YulBlock", + "src": "19861:214:10", + "statements": [ + { + "nativeSrc": "19994:37:10", + "nodeType": "YulAssignment", + "src": "19994:37:10", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "20021:4:10", + "nodeType": "YulIdentifier", + "src": "20021:4:10" + }, + { + "name": "len", + "nativeSrc": "20027:3:10", + "nodeType": "YulIdentifier", + "src": "20027:3:10" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "20002:18:10", + "nodeType": "YulIdentifier", + "src": "20002:18:10" + }, + "nativeSrc": "20002:29:10", + "nodeType": "YulFunctionCall", + "src": "20002:29:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "19994:4:10", + "nodeType": "YulIdentifier", + "src": "19994:4:10" + } + ] + }, + { + "nativeSrc": "20040:29:10", + "nodeType": "YulAssignment", + "src": "20040:29:10", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "20051:4:10", + "nodeType": "YulIdentifier", + "src": "20051:4:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20061:1:10", + "nodeType": "YulLiteral", + "src": "20061:1:10", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "20064:3:10", + "nodeType": "YulIdentifier", + "src": "20064:3:10" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "20057:3:10", + "nodeType": "YulIdentifier", + "src": "20057:3:10" + }, + "nativeSrc": "20057:11:10", + "nodeType": "YulFunctionCall", + "src": "20057:11:10" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "20048:2:10", + "nodeType": "YulIdentifier", + "src": "20048:2:10" + }, + "nativeSrc": "20048:21:10", + "nodeType": "YulFunctionCall", + "src": "20048:21:10" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "20040:4:10", + "nodeType": "YulIdentifier", + "src": "20040:4:10" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "19780:295:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "19842:4:10", + "nodeType": "YulTypedName", + "src": "19842:4:10", + "type": "" + }, + { + "name": "len", + "nativeSrc": "19848:3:10", + "nodeType": "YulTypedName", + "src": "19848:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "19856:4:10", + "nodeType": "YulTypedName", + "src": "19856:4:10", + "type": "" + } + ], + "src": "19780:295:10" + }, + { + "body": { + "nativeSrc": "20179:1304:10", + "nodeType": "YulBlock", + "src": "20179:1304:10", + "statements": [ + { + "nativeSrc": "20190:58:10", + "nodeType": "YulVariableDeclaration", + "src": "20190:58:10", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "20239:3:10", + "nodeType": "YulIdentifier", + "src": "20239:3:10" + }, + { + "name": "len", + "nativeSrc": "20244:3:10", + "nodeType": "YulIdentifier", + "src": "20244:3:10" + } + ], + "functionName": { + "name": "array_length_t_string_calldata_ptr", + "nativeSrc": "20204:34:10", + "nodeType": "YulIdentifier", + "src": "20204:34:10" + }, + "nativeSrc": "20204:44:10", + "nodeType": "YulFunctionCall", + "src": "20204:44:10" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "20194:6:10", + "nodeType": "YulTypedName", + "src": "20194:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20333:22:10", + "nodeType": "YulBlock", + "src": "20333:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "20335:16:10", + "nodeType": "YulIdentifier", + "src": "20335:16:10" + }, + "nativeSrc": "20335:18:10", + "nodeType": "YulFunctionCall", + "src": "20335:18:10" + }, + "nativeSrc": "20335:18:10", + "nodeType": "YulExpressionStatement", + "src": "20335:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20305:6:10", + "nodeType": "YulIdentifier", + "src": "20305:6:10" + }, + { + "kind": "number", + "nativeSrc": "20313:18:10", + "nodeType": "YulLiteral", + "src": "20313:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20302:2:10", + "nodeType": "YulIdentifier", + "src": "20302:2:10" + }, + "nativeSrc": "20302:30:10", + "nodeType": "YulFunctionCall", + "src": "20302:30:10" + }, + "nativeSrc": "20299:56:10", + "nodeType": "YulIf", + "src": "20299:56:10" + }, + { + "nativeSrc": "20365:52:10", + "nodeType": "YulVariableDeclaration", + "src": "20365:52:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20411:4:10", + "nodeType": "YulIdentifier", + "src": "20411:4:10" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "20405:5:10", + "nodeType": "YulIdentifier", + "src": "20405:5:10" + }, + "nativeSrc": "20405:11:10", + "nodeType": "YulFunctionCall", + "src": "20405:11:10" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "20379:25:10", + "nodeType": "YulIdentifier", + "src": "20379:25:10" + }, + "nativeSrc": "20379:38:10", + "nodeType": "YulFunctionCall", + "src": "20379:38:10" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "20369:6:10", + "nodeType": "YulTypedName", + "src": "20369:6:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20510:4:10", + "nodeType": "YulIdentifier", + "src": "20510:4:10" + }, + { + "name": "oldLen", + "nativeSrc": "20516:6:10", + "nodeType": "YulIdentifier", + "src": "20516:6:10" + }, + { + "name": "newLen", + "nativeSrc": "20524:6:10", + "nodeType": "YulIdentifier", + "src": "20524:6:10" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "20464:45:10", + "nodeType": "YulIdentifier", + "src": "20464:45:10" + }, + "nativeSrc": "20464:67:10", + "nodeType": "YulFunctionCall", + "src": "20464:67:10" + }, + "nativeSrc": "20464:67:10", + "nodeType": "YulExpressionStatement", + "src": "20464:67:10" + }, + { + "nativeSrc": "20541:18:10", + "nodeType": "YulVariableDeclaration", + "src": "20541:18:10", + "value": { + "kind": "number", + "nativeSrc": "20558:1:10", + "nodeType": "YulLiteral", + "src": "20558:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "20545:9:10", + "nodeType": "YulTypedName", + "src": "20545:9:10", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "20606:625:10", + "nodeType": "YulBlock", + "src": "20606:625:10", + "statements": [ + { + "nativeSrc": "20620:37:10", + "nodeType": "YulVariableDeclaration", + "src": "20620:37:10", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20639:6:10", + "nodeType": "YulIdentifier", + "src": "20639:6:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20651:4:10", + "nodeType": "YulLiteral", + "src": "20651:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "20647:3:10", + "nodeType": "YulIdentifier", + "src": "20647:3:10" + }, + "nativeSrc": "20647:9:10", + "nodeType": "YulFunctionCall", + "src": "20647:9:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20635:3:10", + "nodeType": "YulIdentifier", + "src": "20635:3:10" + }, + "nativeSrc": "20635:22:10", + "nodeType": "YulFunctionCall", + "src": "20635:22:10" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "20624:7:10", + "nodeType": "YulTypedName", + "src": "20624:7:10", + "type": "" + } + ] + }, + { + "nativeSrc": "20671:51:10", + "nodeType": "YulVariableDeclaration", + "src": "20671:51:10", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20717:4:10", + "nodeType": "YulIdentifier", + "src": "20717:4:10" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "20685:31:10", + "nodeType": "YulIdentifier", + "src": "20685:31:10" + }, + "nativeSrc": "20685:37:10", + "nodeType": "YulFunctionCall", + "src": "20685:37:10" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "20675:6:10", + "nodeType": "YulTypedName", + "src": "20675:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "20735:10:10", + "nodeType": "YulVariableDeclaration", + "src": "20735:10:10", + "value": { + "kind": "number", + "nativeSrc": "20744:1:10", + "nodeType": "YulLiteral", + "src": "20744:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "20739:1:10", + "nodeType": "YulTypedName", + "src": "20739:1:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20803:170:10", + "nodeType": "YulBlock", + "src": "20803:170:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "20828:6:10", + "nodeType": "YulIdentifier", + "src": "20828:6:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "20853:3:10", + "nodeType": "YulIdentifier", + "src": "20853:3:10" + }, + { + "name": "srcOffset", + "nativeSrc": "20858:9:10", + "nodeType": "YulIdentifier", + "src": "20858:9:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20849:3:10", + "nodeType": "YulIdentifier", + "src": "20849:3:10" + }, + "nativeSrc": "20849:19:10", + "nodeType": "YulFunctionCall", + "src": "20849:19:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "20836:12:10", + "nodeType": "YulIdentifier", + "src": "20836:12:10" + }, + "nativeSrc": "20836:33:10", + "nodeType": "YulFunctionCall", + "src": "20836:33:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20821:6:10", + "nodeType": "YulIdentifier", + "src": "20821:6:10" + }, + "nativeSrc": "20821:49:10", + "nodeType": "YulFunctionCall", + "src": "20821:49:10" + }, + "nativeSrc": "20821:49:10", + "nodeType": "YulExpressionStatement", + "src": "20821:49:10" + }, + { + "nativeSrc": "20887:24:10", + "nodeType": "YulAssignment", + "src": "20887:24:10", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "20901:6:10", + "nodeType": "YulIdentifier", + "src": "20901:6:10" + }, + { + "kind": "number", + "nativeSrc": "20909:1:10", + "nodeType": "YulLiteral", + "src": "20909:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20897:3:10", + "nodeType": "YulIdentifier", + "src": "20897:3:10" + }, + "nativeSrc": "20897:14:10", + "nodeType": "YulFunctionCall", + "src": "20897:14:10" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "20887:6:10", + "nodeType": "YulIdentifier", + "src": "20887:6:10" + } + ] + }, + { + "nativeSrc": "20928:31:10", + "nodeType": "YulAssignment", + "src": "20928:31:10", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "20945:9:10", + "nodeType": "YulIdentifier", + "src": "20945:9:10" + }, + { + "kind": "number", + "nativeSrc": "20956:2:10", + "nodeType": "YulLiteral", + "src": "20956:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20941:3:10", + "nodeType": "YulIdentifier", + "src": "20941:3:10" + }, + "nativeSrc": "20941:18:10", + "nodeType": "YulFunctionCall", + "src": "20941:18:10" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "20928:9:10", + "nodeType": "YulIdentifier", + "src": "20928:9:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "20769:1:10", + "nodeType": "YulIdentifier", + "src": "20769:1:10" + }, + { + "name": "loopEnd", + "nativeSrc": "20772:7:10", + "nodeType": "YulIdentifier", + "src": "20772:7:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "20766:2:10", + "nodeType": "YulIdentifier", + "src": "20766:2:10" + }, + "nativeSrc": "20766:14:10", + "nodeType": "YulFunctionCall", + "src": "20766:14:10" + }, + "nativeSrc": "20758:215:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "20781:21:10", + "nodeType": "YulBlock", + "src": "20781:21:10", + "statements": [ + { + "nativeSrc": "20783:17:10", + "nodeType": "YulAssignment", + "src": "20783:17:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "20792:1:10", + "nodeType": "YulIdentifier", + "src": "20792:1:10" + }, + { + "kind": "number", + "nativeSrc": "20795:4:10", + "nodeType": "YulLiteral", + "src": "20795:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20788:3:10", + "nodeType": "YulIdentifier", + "src": "20788:3:10" + }, + "nativeSrc": "20788:12:10", + "nodeType": "YulFunctionCall", + "src": "20788:12:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "20783:1:10", + "nodeType": "YulIdentifier", + "src": "20783:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "20762:3:10", + "nodeType": "YulBlock", + "src": "20762:3:10", + "statements": [] + }, + "src": "20758:215:10" + }, + { + "body": { + "nativeSrc": "21009:163:10", + "nodeType": "YulBlock", + "src": "21009:163:10", + "statements": [ + { + "nativeSrc": "21027:50:10", + "nodeType": "YulVariableDeclaration", + "src": "21027:50:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21061:3:10", + "nodeType": "YulIdentifier", + "src": "21061:3:10" + }, + { + "name": "srcOffset", + "nativeSrc": "21066:9:10", + "nodeType": "YulIdentifier", + "src": "21066:9:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21057:3:10", + "nodeType": "YulIdentifier", + "src": "21057:3:10" + }, + "nativeSrc": "21057:19:10", + "nodeType": "YulFunctionCall", + "src": "21057:19:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21044:12:10", + "nodeType": "YulIdentifier", + "src": "21044:12:10" + }, + "nativeSrc": "21044:33:10", + "nodeType": "YulFunctionCall", + "src": "21044:33:10" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "21031:9:10", + "nodeType": "YulTypedName", + "src": "21031:9:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "21101:6:10", + "nodeType": "YulIdentifier", + "src": "21101:6:10" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "21128:9:10", + "nodeType": "YulIdentifier", + "src": "21128:9:10" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "21143:6:10", + "nodeType": "YulIdentifier", + "src": "21143:6:10" + }, + { + "kind": "number", + "nativeSrc": "21151:4:10", + "nodeType": "YulLiteral", + "src": "21151:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21139:3:10", + "nodeType": "YulIdentifier", + "src": "21139:3:10" + }, + "nativeSrc": "21139:17:10", + "nodeType": "YulFunctionCall", + "src": "21139:17:10" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "21109:18:10", + "nodeType": "YulIdentifier", + "src": "21109:18:10" + }, + "nativeSrc": "21109:48:10", + "nodeType": "YulFunctionCall", + "src": "21109:48:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21094:6:10", + "nodeType": "YulIdentifier", + "src": "21094:6:10" + }, + "nativeSrc": "21094:64:10", + "nodeType": "YulFunctionCall", + "src": "21094:64:10" + }, + "nativeSrc": "21094:64:10", + "nodeType": "YulExpressionStatement", + "src": "21094:64:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "20992:7:10", + "nodeType": "YulIdentifier", + "src": "20992:7:10" + }, + { + "name": "newLen", + "nativeSrc": "21001:6:10", + "nodeType": "YulIdentifier", + "src": "21001:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "20989:2:10", + "nodeType": "YulIdentifier", + "src": "20989:2:10" + }, + "nativeSrc": "20989:19:10", + "nodeType": "YulFunctionCall", + "src": "20989:19:10" + }, + "nativeSrc": "20986:186:10", + "nodeType": "YulIf", + "src": "20986:186:10" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "21192:4:10", + "nodeType": "YulIdentifier", + "src": "21192:4:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "21206:6:10", + "nodeType": "YulIdentifier", + "src": "21206:6:10" + }, + { + "kind": "number", + "nativeSrc": "21214:1:10", + "nodeType": "YulLiteral", + "src": "21214:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "21202:3:10", + "nodeType": "YulIdentifier", + "src": "21202:3:10" + }, + "nativeSrc": "21202:14:10", + "nodeType": "YulFunctionCall", + "src": "21202:14:10" + }, + { + "kind": "number", + "nativeSrc": "21218:1:10", + "nodeType": "YulLiteral", + "src": "21218:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21198:3:10", + "nodeType": "YulIdentifier", + "src": "21198:3:10" + }, + "nativeSrc": "21198:22:10", + "nodeType": "YulFunctionCall", + "src": "21198:22:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21185:6:10", + "nodeType": "YulIdentifier", + "src": "21185:6:10" + }, + "nativeSrc": "21185:36:10", + "nodeType": "YulFunctionCall", + "src": "21185:36:10" + }, + "nativeSrc": "21185:36:10", + "nodeType": "YulExpressionStatement", + "src": "21185:36:10" + } + ] + }, + "nativeSrc": "20599:632:10", + "nodeType": "YulCase", + "src": "20599:632:10", + "value": { + "kind": "number", + "nativeSrc": "20604:1:10", + "nodeType": "YulLiteral", + "src": "20604:1:10", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "21248:229:10", + "nodeType": "YulBlock", + "src": "21248:229:10", + "statements": [ + { + "nativeSrc": "21262:14:10", + "nodeType": "YulVariableDeclaration", + "src": "21262:14:10", + "value": { + "kind": "number", + "nativeSrc": "21275:1:10", + "nodeType": "YulLiteral", + "src": "21275:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "21266:5:10", + "nodeType": "YulTypedName", + "src": "21266:5:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21299:74:10", + "nodeType": "YulBlock", + "src": "21299:74:10", + "statements": [ + { + "nativeSrc": "21317:42:10", + "nodeType": "YulAssignment", + "src": "21317:42:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21343:3:10", + "nodeType": "YulIdentifier", + "src": "21343:3:10" + }, + { + "name": "srcOffset", + "nativeSrc": "21348:9:10", + "nodeType": "YulIdentifier", + "src": "21348:9:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21339:3:10", + "nodeType": "YulIdentifier", + "src": "21339:3:10" + }, + "nativeSrc": "21339:19:10", + "nodeType": "YulFunctionCall", + "src": "21339:19:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21326:12:10", + "nodeType": "YulIdentifier", + "src": "21326:12:10" + }, + "nativeSrc": "21326:33:10", + "nodeType": "YulFunctionCall", + "src": "21326:33:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "21317:5:10", + "nodeType": "YulIdentifier", + "src": "21317:5:10" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "21292:6:10", + "nodeType": "YulIdentifier", + "src": "21292:6:10" + }, + "nativeSrc": "21289:84:10", + "nodeType": "YulIf", + "src": "21289:84:10" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "21393:4:10", + "nodeType": "YulIdentifier", + "src": "21393:4:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "21452:5:10", + "nodeType": "YulIdentifier", + "src": "21452:5:10" + }, + { + "name": "newLen", + "nativeSrc": "21459:6:10", + "nodeType": "YulIdentifier", + "src": "21459:6:10" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "21399:52:10", + "nodeType": "YulIdentifier", + "src": "21399:52:10" + }, + "nativeSrc": "21399:67:10", + "nodeType": "YulFunctionCall", + "src": "21399:67:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21386:6:10", + "nodeType": "YulIdentifier", + "src": "21386:6:10" + }, + "nativeSrc": "21386:81:10", + "nodeType": "YulFunctionCall", + "src": "21386:81:10" + }, + "nativeSrc": "21386:81:10", + "nodeType": "YulExpressionStatement", + "src": "21386:81:10" + } + ] + }, + "nativeSrc": "21240:237:10", + "nodeType": "YulCase", + "src": "21240:237:10", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20579:6:10", + "nodeType": "YulIdentifier", + "src": "20579:6:10" + }, + { + "kind": "number", + "nativeSrc": "20587:2:10", + "nodeType": "YulLiteral", + "src": "20587:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20576:2:10", + "nodeType": "YulIdentifier", + "src": "20576:2:10" + }, + "nativeSrc": "20576:14:10", + "nodeType": "YulFunctionCall", + "src": "20576:14:10" + }, + "nativeSrc": "20569:908:10", + "nodeType": "YulSwitch", + "src": "20569:908:10" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage", + "nativeSrc": "20080:1403:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "20163:4:10", + "nodeType": "YulTypedName", + "src": "20163:4:10", + "type": "" + }, + { + "name": "src", + "nativeSrc": "20169:3:10", + "nodeType": "YulTypedName", + "src": "20169:3:10", + "type": "" + }, + { + "name": "len", + "nativeSrc": "20174:3:10", + "nodeType": "YulTypedName", + "src": "20174:3:10", + "type": "" + } + ], + "src": "20080:1403:10" + }, + { + "body": { + "nativeSrc": "21611:214:10", + "nodeType": "YulBlock", + "src": "21611:214:10", + "statements": [ + { + "nativeSrc": "21621:77:10", + "nodeType": "YulAssignment", + "src": "21621:77:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21686:3:10", + "nodeType": "YulIdentifier", + "src": "21686:3:10" + }, + { + "name": "length", + "nativeSrc": "21691:6:10", + "nodeType": "YulIdentifier", + "src": "21691:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21628:57:10", + "nodeType": "YulIdentifier", + "src": "21628:57:10" + }, + "nativeSrc": "21628:70:10", + "nodeType": "YulFunctionCall", + "src": "21628:70:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21621:3:10", + "nodeType": "YulIdentifier", + "src": "21621:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "21745:5:10", + "nodeType": "YulIdentifier", + "src": "21745:5:10" + }, + { + "name": "pos", + "nativeSrc": "21752:3:10", + "nodeType": "YulIdentifier", + "src": "21752:3:10" + }, + { + "name": "length", + "nativeSrc": "21757:6:10", + "nodeType": "YulIdentifier", + "src": "21757:6:10" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "21708:36:10", + "nodeType": "YulIdentifier", + "src": "21708:36:10" + }, + "nativeSrc": "21708:56:10", + "nodeType": "YulFunctionCall", + "src": "21708:56:10" + }, + "nativeSrc": "21708:56:10", + "nodeType": "YulExpressionStatement", + "src": "21708:56:10" + }, + { + "nativeSrc": "21773:46:10", + "nodeType": "YulAssignment", + "src": "21773:46:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21784:3:10", + "nodeType": "YulIdentifier", + "src": "21784:3:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "21811:6:10", + "nodeType": "YulIdentifier", + "src": "21811:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "21789:21:10", + "nodeType": "YulIdentifier", + "src": "21789:21:10" + }, + "nativeSrc": "21789:29:10", + "nodeType": "YulFunctionCall", + "src": "21789:29:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21780:3:10", + "nodeType": "YulIdentifier", + "src": "21780:3:10" + }, + "nativeSrc": "21780:39:10", + "nodeType": "YulFunctionCall", + "src": "21780:39:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21773:3:10", + "nodeType": "YulIdentifier", + "src": "21773:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "21511:314:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "21584:5:10", + "nodeType": "YulTypedName", + "src": "21584:5:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21591:6:10", + "nodeType": "YulTypedName", + "src": "21591:6:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21599:3:10", + "nodeType": "YulTypedName", + "src": "21599:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21607:3:10", + "nodeType": "YulTypedName", + "src": "21607:3:10", + "type": "" + } + ], + "src": "21511:314:10" + }, + { + "body": { + "nativeSrc": "22013:364:10", + "nodeType": "YulBlock", + "src": "22013:364:10", + "statements": [ + { + "nativeSrc": "22023:26:10", + "nodeType": "YulAssignment", + "src": "22023:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22035:9:10", + "nodeType": "YulIdentifier", + "src": "22035:9:10" + }, + { + "kind": "number", + "nativeSrc": "22046:2:10", + "nodeType": "YulLiteral", + "src": "22046:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22031:3:10", + "nodeType": "YulIdentifier", + "src": "22031:3:10" + }, + "nativeSrc": "22031:18:10", + "nodeType": "YulFunctionCall", + "src": "22031:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22023:4:10", + "nodeType": "YulIdentifier", + "src": "22023:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22070:9:10", + "nodeType": "YulIdentifier", + "src": "22070:9:10" + }, + { + "kind": "number", + "nativeSrc": "22081:1:10", + "nodeType": "YulLiteral", + "src": "22081:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22066:3:10", + "nodeType": "YulIdentifier", + "src": "22066:3:10" + }, + "nativeSrc": "22066:17:10", + "nodeType": "YulFunctionCall", + "src": "22066:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22089:4:10", + "nodeType": "YulIdentifier", + "src": "22089:4:10" + }, + { + "name": "headStart", + "nativeSrc": "22095:9:10", + "nodeType": "YulIdentifier", + "src": "22095:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22085:3:10", + "nodeType": "YulIdentifier", + "src": "22085:3:10" + }, + "nativeSrc": "22085:20:10", + "nodeType": "YulFunctionCall", + "src": "22085:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22059:6:10", + "nodeType": "YulIdentifier", + "src": "22059:6:10" + }, + "nativeSrc": "22059:47:10", + "nodeType": "YulFunctionCall", + "src": "22059:47:10" + }, + "nativeSrc": "22059:47:10", + "nodeType": "YulExpressionStatement", + "src": "22059:47:10" + }, + { + "nativeSrc": "22115:94:10", + "nodeType": "YulAssignment", + "src": "22115:94:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22187:6:10", + "nodeType": "YulIdentifier", + "src": "22187:6:10" + }, + { + "name": "value1", + "nativeSrc": "22195:6:10", + "nodeType": "YulIdentifier", + "src": "22195:6:10" + }, + { + "name": "tail", + "nativeSrc": "22204:4:10", + "nodeType": "YulIdentifier", + "src": "22204:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "22123:63:10", + "nodeType": "YulIdentifier", + "src": "22123:63:10" + }, + "nativeSrc": "22123:86:10", + "nodeType": "YulFunctionCall", + "src": "22123:86:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22115:4:10", + "nodeType": "YulIdentifier", + "src": "22115:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22230:9:10", + "nodeType": "YulIdentifier", + "src": "22230:9:10" + }, + { + "kind": "number", + "nativeSrc": "22241:2:10", + "nodeType": "YulLiteral", + "src": "22241:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22226:3:10", + "nodeType": "YulIdentifier", + "src": "22226:3:10" + }, + "nativeSrc": "22226:18:10", + "nodeType": "YulFunctionCall", + "src": "22226:18:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22250:4:10", + "nodeType": "YulIdentifier", + "src": "22250:4:10" + }, + { + "name": "headStart", + "nativeSrc": "22256:9:10", + "nodeType": "YulIdentifier", + "src": "22256:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22246:3:10", + "nodeType": "YulIdentifier", + "src": "22246:3:10" + }, + "nativeSrc": "22246:20:10", + "nodeType": "YulFunctionCall", + "src": "22246:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22219:6:10", + "nodeType": "YulIdentifier", + "src": "22219:6:10" + }, + "nativeSrc": "22219:48:10", + "nodeType": "YulFunctionCall", + "src": "22219:48:10" + }, + "nativeSrc": "22219:48:10", + "nodeType": "YulExpressionStatement", + "src": "22219:48:10" + }, + { + "nativeSrc": "22276:94:10", + "nodeType": "YulAssignment", + "src": "22276:94:10", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22348:6:10", + "nodeType": "YulIdentifier", + "src": "22348:6:10" + }, + { + "name": "value3", + "nativeSrc": "22356:6:10", + "nodeType": "YulIdentifier", + "src": "22356:6:10" + }, + { + "name": "tail", + "nativeSrc": "22365:4:10", + "nodeType": "YulIdentifier", + "src": "22365:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "22284:63:10", + "nodeType": "YulIdentifier", + "src": "22284:63:10" + }, + "nativeSrc": "22284:86:10", + "nodeType": "YulFunctionCall", + "src": "22284:86:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22276:4:10", + "nodeType": "YulIdentifier", + "src": "22276:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "21831:546:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21961:9:10", + "nodeType": "YulTypedName", + "src": "21961:9:10", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "21973:6:10", + "nodeType": "YulTypedName", + "src": "21973:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21981:6:10", + "nodeType": "YulTypedName", + "src": "21981:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21989:6:10", + "nodeType": "YulTypedName", + "src": "21989:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21997:6:10", + "nodeType": "YulTypedName", + "src": "21997:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22008:4:10", + "nodeType": "YulTypedName", + "src": "22008:4:10", + "type": "" + } + ], + "src": "21831:546:10" + }, + { + "body": { + "nativeSrc": "22411:152:10", + "nodeType": "YulBlock", + "src": "22411:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22428:1:10", + "nodeType": "YulLiteral", + "src": "22428:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22431:77:10", + "nodeType": "YulLiteral", + "src": "22431:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22421:6:10", + "nodeType": "YulIdentifier", + "src": "22421:6:10" + }, + "nativeSrc": "22421:88:10", + "nodeType": "YulFunctionCall", + "src": "22421:88:10" + }, + "nativeSrc": "22421:88:10", + "nodeType": "YulExpressionStatement", + "src": "22421:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22525:1:10", + "nodeType": "YulLiteral", + "src": "22525:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22528:4:10", + "nodeType": "YulLiteral", + "src": "22528:4:10", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22518:6:10", + "nodeType": "YulIdentifier", + "src": "22518:6:10" + }, + "nativeSrc": "22518:15:10", + "nodeType": "YulFunctionCall", + "src": "22518:15:10" + }, + "nativeSrc": "22518:15:10", + "nodeType": "YulExpressionStatement", + "src": "22518:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22549:1:10", + "nodeType": "YulLiteral", + "src": "22549:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22552:4:10", + "nodeType": "YulLiteral", + "src": "22552:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22542:6:10", + "nodeType": "YulIdentifier", + "src": "22542:6:10" + }, + "nativeSrc": "22542:15:10", + "nodeType": "YulFunctionCall", + "src": "22542:15:10" + }, + "nativeSrc": "22542:15:10", + "nodeType": "YulExpressionStatement", + "src": "22542:15:10" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "22383:180:10", + "nodeType": "YulFunctionDefinition", + "src": "22383:180:10" + }, + { + "body": { + "nativeSrc": "22713:275:10", + "nodeType": "YulBlock", + "src": "22713:275:10", + "statements": [ + { + "nativeSrc": "22723:26:10", + "nodeType": "YulAssignment", + "src": "22723:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22735:9:10", + "nodeType": "YulIdentifier", + "src": "22735:9:10" + }, + { + "kind": "number", + "nativeSrc": "22746:2:10", + "nodeType": "YulLiteral", + "src": "22746:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22731:3:10", + "nodeType": "YulIdentifier", + "src": "22731:3:10" + }, + "nativeSrc": "22731:18:10", + "nodeType": "YulFunctionCall", + "src": "22731:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22723:4:10", + "nodeType": "YulIdentifier", + "src": "22723:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22770:9:10", + "nodeType": "YulIdentifier", + "src": "22770:9:10" + }, + { + "kind": "number", + "nativeSrc": "22781:1:10", + "nodeType": "YulLiteral", + "src": "22781:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22766:3:10", + "nodeType": "YulIdentifier", + "src": "22766:3:10" + }, + "nativeSrc": "22766:17:10", + "nodeType": "YulFunctionCall", + "src": "22766:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22789:4:10", + "nodeType": "YulIdentifier", + "src": "22789:4:10" + }, + { + "name": "headStart", + "nativeSrc": "22795:9:10", + "nodeType": "YulIdentifier", + "src": "22795:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22785:3:10", + "nodeType": "YulIdentifier", + "src": "22785:3:10" + }, + "nativeSrc": "22785:20:10", + "nodeType": "YulFunctionCall", + "src": "22785:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22759:6:10", + "nodeType": "YulIdentifier", + "src": "22759:6:10" + }, + "nativeSrc": "22759:47:10", + "nodeType": "YulFunctionCall", + "src": "22759:47:10" + }, + "nativeSrc": "22759:47:10", + "nodeType": "YulExpressionStatement", + "src": "22759:47:10" + }, + { + "nativeSrc": "22815:84:10", + "nodeType": "YulAssignment", + "src": "22815:84:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22885:6:10", + "nodeType": "YulIdentifier", + "src": "22885:6:10" + }, + { + "name": "tail", + "nativeSrc": "22894:4:10", + "nodeType": "YulIdentifier", + "src": "22894:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "22823:61:10", + "nodeType": "YulIdentifier", + "src": "22823:61:10" + }, + "nativeSrc": "22823:76:10", + "nodeType": "YulFunctionCall", + "src": "22823:76:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22815:4:10", + "nodeType": "YulIdentifier", + "src": "22815:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "22953:6:10", + "nodeType": "YulIdentifier", + "src": "22953:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22966:9:10", + "nodeType": "YulIdentifier", + "src": "22966:9:10" + }, + { + "kind": "number", + "nativeSrc": "22977:2:10", + "nodeType": "YulLiteral", + "src": "22977:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22962:3:10", + "nodeType": "YulIdentifier", + "src": "22962:3:10" + }, + "nativeSrc": "22962:18:10", + "nodeType": "YulFunctionCall", + "src": "22962:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "22909:43:10", + "nodeType": "YulIdentifier", + "src": "22909:43:10" + }, + "nativeSrc": "22909:72:10", + "nodeType": "YulFunctionCall", + "src": "22909:72:10" + }, + "nativeSrc": "22909:72:10", + "nodeType": "YulExpressionStatement", + "src": "22909:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__fromStack_reversed", + "nativeSrc": "22569:419:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22677:9:10", + "nodeType": "YulTypedName", + "src": "22677:9:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22689:6:10", + "nodeType": "YulTypedName", + "src": "22689:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22697:6:10", + "nodeType": "YulTypedName", + "src": "22697:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22708:4:10", + "nodeType": "YulTypedName", + "src": "22708:4:10", + "type": "" + } + ], + "src": "22569:419:10" + }, + { + "body": { + "nativeSrc": "23078:40:10", + "nodeType": "YulBlock", + "src": "23078:40:10", + "statements": [ + { + "nativeSrc": "23089:22:10", + "nodeType": "YulAssignment", + "src": "23089:22:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "23105:5:10", + "nodeType": "YulIdentifier", + "src": "23105:5:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23099:5:10", + "nodeType": "YulIdentifier", + "src": "23099:5:10" + }, + "nativeSrc": "23099:12:10", + "nodeType": "YulFunctionCall", + "src": "23099:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "23089:6:10", + "nodeType": "YulIdentifier", + "src": "23089:6:10" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nativeSrc": "22994:124:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23061:5:10", + "nodeType": "YulTypedName", + "src": "23061:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "23071:6:10", + "nodeType": "YulTypedName", + "src": "23071:6:10", + "type": "" + } + ], + "src": "22994:124:10" + }, + { + "body": { + "nativeSrc": "23245:73:10", + "nodeType": "YulBlock", + "src": "23245:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23262:3:10", + "nodeType": "YulIdentifier", + "src": "23262:3:10" + }, + { + "name": "length", + "nativeSrc": "23267:6:10", + "nodeType": "YulIdentifier", + "src": "23267:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23255:6:10", + "nodeType": "YulIdentifier", + "src": "23255:6:10" + }, + "nativeSrc": "23255:19:10", + "nodeType": "YulFunctionCall", + "src": "23255:19:10" + }, + "nativeSrc": "23255:19:10", + "nodeType": "YulExpressionStatement", + "src": "23255:19:10" + }, + { + "nativeSrc": "23283:29:10", + "nodeType": "YulAssignment", + "src": "23283:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23302:3:10", + "nodeType": "YulIdentifier", + "src": "23302:3:10" + }, + { + "kind": "number", + "nativeSrc": "23307:4:10", + "nodeType": "YulLiteral", + "src": "23307:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23298:3:10", + "nodeType": "YulIdentifier", + "src": "23298:3:10" + }, + "nativeSrc": "23298:14:10", + "nodeType": "YulFunctionCall", + "src": "23298:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "23283:11:10", + "nodeType": "YulIdentifier", + "src": "23283:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nativeSrc": "23124:194:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23217:3:10", + "nodeType": "YulTypedName", + "src": "23217:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "23222:6:10", + "nodeType": "YulTypedName", + "src": "23222:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "23233:11:10", + "nodeType": "YulTypedName", + "src": "23233:11:10", + "type": "" + } + ], + "src": "23124:194:10" + }, + { + "body": { + "nativeSrc": "23406:60:10", + "nodeType": "YulBlock", + "src": "23406:60:10", + "statements": [ + { + "nativeSrc": "23416:11:10", + "nodeType": "YulAssignment", + "src": "23416:11:10", + "value": { + "name": "ptr", + "nativeSrc": "23424:3:10", + "nodeType": "YulIdentifier", + "src": "23424:3:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "23416:4:10", + "nodeType": "YulIdentifier", + "src": "23416:4:10" + } + ] + }, + { + "nativeSrc": "23437:22:10", + "nodeType": "YulAssignment", + "src": "23437:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "23449:3:10", + "nodeType": "YulIdentifier", + "src": "23449:3:10" + }, + { + "kind": "number", + "nativeSrc": "23454:4:10", + "nodeType": "YulLiteral", + "src": "23454:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23445:3:10", + "nodeType": "YulIdentifier", + "src": "23445:3:10" + }, + "nativeSrc": "23445:14:10", + "nodeType": "YulFunctionCall", + "src": "23445:14:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "23437:4:10", + "nodeType": "YulIdentifier", + "src": "23437:4:10" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nativeSrc": "23324:142:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "23393:3:10", + "nodeType": "YulTypedName", + "src": "23393:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "23401:4:10", + "nodeType": "YulTypedName", + "src": "23401:4:10", + "type": "" + } + ], + "src": "23324:142:10" + }, + { + "body": { + "nativeSrc": "23558:73:10", + "nodeType": "YulBlock", + "src": "23558:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23575:3:10", + "nodeType": "YulIdentifier", + "src": "23575:3:10" + }, + { + "name": "length", + "nativeSrc": "23580:6:10", + "nodeType": "YulIdentifier", + "src": "23580:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23568:6:10", + "nodeType": "YulIdentifier", + "src": "23568:6:10" + }, + "nativeSrc": "23568:19:10", + "nodeType": "YulFunctionCall", + "src": "23568:19:10" + }, + "nativeSrc": "23568:19:10", + "nodeType": "YulExpressionStatement", + "src": "23568:19:10" + }, + { + "nativeSrc": "23596:29:10", + "nodeType": "YulAssignment", + "src": "23596:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23615:3:10", + "nodeType": "YulIdentifier", + "src": "23615:3:10" + }, + { + "kind": "number", + "nativeSrc": "23620:4:10", + "nodeType": "YulLiteral", + "src": "23620:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23611:3:10", + "nodeType": "YulIdentifier", + "src": "23611:3:10" + }, + "nativeSrc": "23611:14:10", + "nodeType": "YulFunctionCall", + "src": "23611:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "23596:11:10", + "nodeType": "YulIdentifier", + "src": "23596:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nativeSrc": "23472:159:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23530:3:10", + "nodeType": "YulTypedName", + "src": "23530:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "23535:6:10", + "nodeType": "YulTypedName", + "src": "23535:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "23546:11:10", + "nodeType": "YulTypedName", + "src": "23546:11:10", + "type": "" + } + ], + "src": "23472:159:10" + }, + { + "body": { + "nativeSrc": "23719:275:10", + "nodeType": "YulBlock", + "src": "23719:275:10", + "statements": [ + { + "nativeSrc": "23729:53:10", + "nodeType": "YulVariableDeclaration", + "src": "23729:53:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "23776:5:10", + "nodeType": "YulIdentifier", + "src": "23776:5:10" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "23743:32:10", + "nodeType": "YulIdentifier", + "src": "23743:32:10" + }, + "nativeSrc": "23743:39:10", + "nodeType": "YulFunctionCall", + "src": "23743:39:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "23733:6:10", + "nodeType": "YulTypedName", + "src": "23733:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "23791:68:10", + "nodeType": "YulAssignment", + "src": "23791:68:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23847:3:10", + "nodeType": "YulIdentifier", + "src": "23847:3:10" + }, + { + "name": "length", + "nativeSrc": "23852:6:10", + "nodeType": "YulIdentifier", + "src": "23852:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr", + "nativeSrc": "23798:48:10", + "nodeType": "YulIdentifier", + "src": "23798:48:10" + }, + "nativeSrc": "23798:61:10", + "nodeType": "YulFunctionCall", + "src": "23798:61:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "23791:3:10", + "nodeType": "YulIdentifier", + "src": "23791:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "23907:5:10", + "nodeType": "YulIdentifier", + "src": "23907:5:10" + }, + { + "kind": "number", + "nativeSrc": "23914:4:10", + "nodeType": "YulLiteral", + "src": "23914:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23903:3:10", + "nodeType": "YulIdentifier", + "src": "23903:3:10" + }, + "nativeSrc": "23903:16:10", + "nodeType": "YulFunctionCall", + "src": "23903:16:10" + }, + { + "name": "pos", + "nativeSrc": "23921:3:10", + "nodeType": "YulIdentifier", + "src": "23921:3:10" + }, + { + "name": "length", + "nativeSrc": "23926:6:10", + "nodeType": "YulIdentifier", + "src": "23926:6:10" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "23868:34:10", + "nodeType": "YulIdentifier", + "src": "23868:34:10" + }, + "nativeSrc": "23868:65:10", + "nodeType": "YulFunctionCall", + "src": "23868:65:10" + }, + "nativeSrc": "23868:65:10", + "nodeType": "YulExpressionStatement", + "src": "23868:65:10" + }, + { + "nativeSrc": "23942:46:10", + "nodeType": "YulAssignment", + "src": "23942:46:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23953:3:10", + "nodeType": "YulIdentifier", + "src": "23953:3:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "23980:6:10", + "nodeType": "YulIdentifier", + "src": "23980:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "23958:21:10", + "nodeType": "YulIdentifier", + "src": "23958:21:10" + }, + "nativeSrc": "23958:29:10", + "nodeType": "YulFunctionCall", + "src": "23958:29:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23949:3:10", + "nodeType": "YulIdentifier", + "src": "23949:3:10" + }, + "nativeSrc": "23949:39:10", + "nodeType": "YulFunctionCall", + "src": "23949:39:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23942:3:10", + "nodeType": "YulIdentifier", + "src": "23942:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nativeSrc": "23637:357:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23700:5:10", + "nodeType": "YulTypedName", + "src": "23700:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "23707:3:10", + "nodeType": "YulTypedName", + "src": "23707:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23715:3:10", + "nodeType": "YulTypedName", + "src": "23715:3:10", + "type": "" + } + ], + "src": "23637:357:10" + }, + { + "body": { + "nativeSrc": "24100:96:10", + "nodeType": "YulBlock", + "src": "24100:96:10", + "statements": [ + { + "nativeSrc": "24110:80:10", + "nodeType": "YulAssignment", + "src": "24110:80:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24178:6:10", + "nodeType": "YulIdentifier", + "src": "24178:6:10" + }, + { + "name": "pos", + "nativeSrc": "24186:3:10", + "nodeType": "YulIdentifier", + "src": "24186:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", + "nativeSrc": "24124:53:10", + "nodeType": "YulIdentifier", + "src": "24124:53:10" + }, + "nativeSrc": "24124:66:10", + "nodeType": "YulFunctionCall", + "src": "24124:66:10" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "24110:10:10", + "nodeType": "YulIdentifier", + "src": "24110:10:10" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr", + "nativeSrc": "24000:196:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "24073:6:10", + "nodeType": "YulTypedName", + "src": "24073:6:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24081:3:10", + "nodeType": "YulTypedName", + "src": "24081:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "24089:10:10", + "nodeType": "YulTypedName", + "src": "24089:10:10", + "type": "" + } + ], + "src": "24000:196:10" + }, + { + "body": { + "nativeSrc": "24287:38:10", + "nodeType": "YulBlock", + "src": "24287:38:10", + "statements": [ + { + "nativeSrc": "24297:22:10", + "nodeType": "YulAssignment", + "src": "24297:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "24309:3:10", + "nodeType": "YulIdentifier", + "src": "24309:3:10" + }, + { + "kind": "number", + "nativeSrc": "24314:4:10", + "nodeType": "YulLiteral", + "src": "24314:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24305:3:10", + "nodeType": "YulIdentifier", + "src": "24305:3:10" + }, + "nativeSrc": "24305:14:10", + "nodeType": "YulFunctionCall", + "src": "24305:14:10" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "24297:4:10", + "nodeType": "YulIdentifier", + "src": "24297:4:10" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nativeSrc": "24202:123:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "24274:3:10", + "nodeType": "YulTypedName", + "src": "24274:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "24282:4:10", + "nodeType": "YulTypedName", + "src": "24282:4:10", + "type": "" + } + ], + "src": "24202:123:10" + }, + { + "body": { + "nativeSrc": "24503:847:10", + "nodeType": "YulBlock", + "src": "24503:847:10", + "statements": [ + { + "nativeSrc": "24513:78:10", + "nodeType": "YulVariableDeclaration", + "src": "24513:78:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24585:5:10", + "nodeType": "YulIdentifier", + "src": "24585:5:10" + } + ], + "functionName": { + "name": "array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nativeSrc": "24527:57:10", + "nodeType": "YulIdentifier", + "src": "24527:57:10" + }, + "nativeSrc": "24527:64:10", + "nodeType": "YulFunctionCall", + "src": "24527:64:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "24517:6:10", + "nodeType": "YulTypedName", + "src": "24517:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "24600:103:10", + "nodeType": "YulAssignment", + "src": "24600:103:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24691:3:10", + "nodeType": "YulIdentifier", + "src": "24691:3:10" + }, + { + "name": "length", + "nativeSrc": "24696:6:10", + "nodeType": "YulIdentifier", + "src": "24696:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nativeSrc": "24607:83:10", + "nodeType": "YulIdentifier", + "src": "24607:83:10" + }, + "nativeSrc": "24607:96:10", + "nodeType": "YulFunctionCall", + "src": "24607:96:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24600:3:10", + "nodeType": "YulIdentifier", + "src": "24600:3:10" + } + ] + }, + { + "nativeSrc": "24712:20:10", + "nodeType": "YulVariableDeclaration", + "src": "24712:20:10", + "value": { + "name": "pos", + "nativeSrc": "24729:3:10", + "nodeType": "YulIdentifier", + "src": "24729:3:10" + }, + "variables": [ + { + "name": "headStart", + "nativeSrc": "24716:9:10", + "nodeType": "YulTypedName", + "src": "24716:9:10", + "type": "" + } + ] + }, + { + "nativeSrc": "24741:39:10", + "nodeType": "YulVariableDeclaration", + "src": "24741:39:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24757:3:10", + "nodeType": "YulIdentifier", + "src": "24757:3:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "24766:6:10", + "nodeType": "YulIdentifier", + "src": "24766:6:10" + }, + { + "kind": "number", + "nativeSrc": "24774:4:10", + "nodeType": "YulLiteral", + "src": "24774:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "24762:3:10", + "nodeType": "YulIdentifier", + "src": "24762:3:10" + }, + "nativeSrc": "24762:17:10", + "nodeType": "YulFunctionCall", + "src": "24762:17:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24753:3:10", + "nodeType": "YulIdentifier", + "src": "24753:3:10" + }, + "nativeSrc": "24753:27:10", + "nodeType": "YulFunctionCall", + "src": "24753:27:10" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "24745:4:10", + "nodeType": "YulTypedName", + "src": "24745:4:10", + "type": "" + } + ] + }, + { + "nativeSrc": "24789:81:10", + "nodeType": "YulVariableDeclaration", + "src": "24789:81:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24864:5:10", + "nodeType": "YulIdentifier", + "src": "24864:5:10" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nativeSrc": "24804:59:10", + "nodeType": "YulIdentifier", + "src": "24804:59:10" + }, + "nativeSrc": "24804:66:10", + "nodeType": "YulFunctionCall", + "src": "24804:66:10" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "24793:7:10", + "nodeType": "YulTypedName", + "src": "24793:7:10", + "type": "" + } + ] + }, + { + "nativeSrc": "24879:21:10", + "nodeType": "YulVariableDeclaration", + "src": "24879:21:10", + "value": { + "name": "baseRef", + "nativeSrc": "24893:7:10", + "nodeType": "YulIdentifier", + "src": "24893:7:10" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "24883:6:10", + "nodeType": "YulTypedName", + "src": "24883:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "24969:336:10", + "nodeType": "YulBlock", + "src": "24969:336:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24990:3:10", + "nodeType": "YulIdentifier", + "src": "24990:3:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "24999:4:10", + "nodeType": "YulIdentifier", + "src": "24999:4:10" + }, + { + "name": "headStart", + "nativeSrc": "25005:9:10", + "nodeType": "YulIdentifier", + "src": "25005:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24995:3:10", + "nodeType": "YulIdentifier", + "src": "24995:3:10" + }, + "nativeSrc": "24995:20:10", + "nodeType": "YulFunctionCall", + "src": "24995:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24983:6:10", + "nodeType": "YulIdentifier", + "src": "24983:6:10" + }, + "nativeSrc": "24983:33:10", + "nodeType": "YulFunctionCall", + "src": "24983:33:10" + }, + "nativeSrc": "24983:33:10", + "nodeType": "YulExpressionStatement", + "src": "24983:33:10" + }, + { + "nativeSrc": "25029:34:10", + "nodeType": "YulVariableDeclaration", + "src": "25029:34:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "25056:6:10", + "nodeType": "YulIdentifier", + "src": "25056:6:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25050:5:10", + "nodeType": "YulIdentifier", + "src": "25050:5:10" + }, + "nativeSrc": "25050:13:10", + "nodeType": "YulFunctionCall", + "src": "25050:13:10" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "25033:13:10", + "nodeType": "YulTypedName", + "src": "25033:13:10", + "type": "" + } + ] + }, + { + "nativeSrc": "25076:92:10", + "nodeType": "YulAssignment", + "src": "25076:92:10", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "25148:13:10", + "nodeType": "YulIdentifier", + "src": "25148:13:10" + }, + { + "name": "tail", + "nativeSrc": "25163:4:10", + "nodeType": "YulIdentifier", + "src": "25163:4:10" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr", + "nativeSrc": "25084:63:10", + "nodeType": "YulIdentifier", + "src": "25084:63:10" + }, + "nativeSrc": "25084:84:10", + "nodeType": "YulFunctionCall", + "src": "25084:84:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25076:4:10", + "nodeType": "YulIdentifier", + "src": "25076:4:10" + } + ] + }, + { + "nativeSrc": "25181:80:10", + "nodeType": "YulAssignment", + "src": "25181:80:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "25254:6:10", + "nodeType": "YulIdentifier", + "src": "25254:6:10" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "nativeSrc": "25191:62:10", + "nodeType": "YulIdentifier", + "src": "25191:62:10" + }, + "nativeSrc": "25191:70:10", + "nodeType": "YulFunctionCall", + "src": "25191:70:10" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "25181:6:10", + "nodeType": "YulIdentifier", + "src": "25181:6:10" + } + ] + }, + { + "nativeSrc": "25274:21:10", + "nodeType": "YulAssignment", + "src": "25274:21:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25285:3:10", + "nodeType": "YulIdentifier", + "src": "25285:3:10" + }, + { + "kind": "number", + "nativeSrc": "25290:4:10", + "nodeType": "YulLiteral", + "src": "25290:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25281:3:10", + "nodeType": "YulIdentifier", + "src": "25281:3:10" + }, + "nativeSrc": "25281:14:10", + "nodeType": "YulFunctionCall", + "src": "25281:14:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25274:3:10", + "nodeType": "YulIdentifier", + "src": "25274:3:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "24931:1:10", + "nodeType": "YulIdentifier", + "src": "24931:1:10" + }, + { + "name": "length", + "nativeSrc": "24934:6:10", + "nodeType": "YulIdentifier", + "src": "24934:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "24928:2:10", + "nodeType": "YulIdentifier", + "src": "24928:2:10" + }, + "nativeSrc": "24928:13:10", + "nodeType": "YulFunctionCall", + "src": "24928:13:10" + }, + "nativeSrc": "24909:396:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "24942:18:10", + "nodeType": "YulBlock", + "src": "24942:18:10", + "statements": [ + { + "nativeSrc": "24944:14:10", + "nodeType": "YulAssignment", + "src": "24944:14:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "24953:1:10", + "nodeType": "YulIdentifier", + "src": "24953:1:10" + }, + { + "kind": "number", + "nativeSrc": "24956:1:10", + "nodeType": "YulLiteral", + "src": "24956:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24949:3:10", + "nodeType": "YulIdentifier", + "src": "24949:3:10" + }, + "nativeSrc": "24949:9:10", + "nodeType": "YulFunctionCall", + "src": "24949:9:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "24944:1:10", + "nodeType": "YulIdentifier", + "src": "24944:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "24913:14:10", + "nodeType": "YulBlock", + "src": "24913:14:10", + "statements": [ + { + "nativeSrc": "24915:10:10", + "nodeType": "YulVariableDeclaration", + "src": "24915:10:10", + "value": { + "kind": "number", + "nativeSrc": "24924:1:10", + "nodeType": "YulLiteral", + "src": "24924:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "24919:1:10", + "nodeType": "YulTypedName", + "src": "24919:1:10", + "type": "" + } + ] + } + ] + }, + "src": "24909:396:10" + }, + { + "nativeSrc": "25314:11:10", + "nodeType": "YulAssignment", + "src": "25314:11:10", + "value": { + "name": "tail", + "nativeSrc": "25321:4:10", + "nodeType": "YulIdentifier", + "src": "25321:4:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25314:3:10", + "nodeType": "YulIdentifier", + "src": "25314:3:10" + } + ] + }, + { + "nativeSrc": "25334:10:10", + "nodeType": "YulAssignment", + "src": "25334:10:10", + "value": { + "name": "pos", + "nativeSrc": "25341:3:10", + "nodeType": "YulIdentifier", + "src": "25341:3:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25334:3:10", + "nodeType": "YulIdentifier", + "src": "25334:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nativeSrc": "24359:991:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24482:5:10", + "nodeType": "YulTypedName", + "src": "24482:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24489:3:10", + "nodeType": "YulTypedName", + "src": "24489:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24498:3:10", + "nodeType": "YulTypedName", + "src": "24498:3:10", + "type": "" + } + ], + "src": "24359:991:10" + }, + { + "body": { + "nativeSrc": "25419:52:10", + "nodeType": "YulBlock", + "src": "25419:52:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25436:3:10", + "nodeType": "YulIdentifier", + "src": "25436:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25458:5:10", + "nodeType": "YulIdentifier", + "src": "25458:5:10" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "25441:16:10", + "nodeType": "YulIdentifier", + "src": "25441:16:10" + }, + "nativeSrc": "25441:23:10", + "nodeType": "YulFunctionCall", + "src": "25441:23:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25429:6:10", + "nodeType": "YulIdentifier", + "src": "25429:6:10" + }, + "nativeSrc": "25429:36:10", + "nodeType": "YulFunctionCall", + "src": "25429:36:10" + }, + "nativeSrc": "25429:36:10", + "nodeType": "YulExpressionStatement", + "src": "25429:36:10" + } + ] + }, + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "25356:115:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25407:5:10", + "nodeType": "YulTypedName", + "src": "25407:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "25414:3:10", + "nodeType": "YulTypedName", + "src": "25414:3:10", + "type": "" + } + ], + "src": "25356:115:10" + }, + { + "body": { + "nativeSrc": "25791:711:10", + "nodeType": "YulBlock", + "src": "25791:711:10", + "statements": [ + { + "nativeSrc": "25801:27:10", + "nodeType": "YulAssignment", + "src": "25801:27:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25813:9:10", + "nodeType": "YulIdentifier", + "src": "25813:9:10" + }, + { + "kind": "number", + "nativeSrc": "25824:3:10", + "nodeType": "YulLiteral", + "src": "25824:3:10", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25809:3:10", + "nodeType": "YulIdentifier", + "src": "25809:3:10" + }, + "nativeSrc": "25809:19:10", + "nodeType": "YulFunctionCall", + "src": "25809:19:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25801:4:10", + "nodeType": "YulIdentifier", + "src": "25801:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "25882:6:10", + "nodeType": "YulIdentifier", + "src": "25882:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25895:9:10", + "nodeType": "YulIdentifier", + "src": "25895:9:10" + }, + { + "kind": "number", + "nativeSrc": "25906:1:10", + "nodeType": "YulLiteral", + "src": "25906:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25891:3:10", + "nodeType": "YulIdentifier", + "src": "25891:3:10" + }, + "nativeSrc": "25891:17:10", + "nodeType": "YulFunctionCall", + "src": "25891:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "25838:43:10", + "nodeType": "YulIdentifier", + "src": "25838:43:10" + }, + "nativeSrc": "25838:71:10", + "nodeType": "YulFunctionCall", + "src": "25838:71:10" + }, + "nativeSrc": "25838:71:10", + "nodeType": "YulExpressionStatement", + "src": "25838:71:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25930:9:10", + "nodeType": "YulIdentifier", + "src": "25930:9:10" + }, + { + "kind": "number", + "nativeSrc": "25941:2:10", + "nodeType": "YulLiteral", + "src": "25941:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25926:3:10", + "nodeType": "YulIdentifier", + "src": "25926:3:10" + }, + "nativeSrc": "25926:18:10", + "nodeType": "YulFunctionCall", + "src": "25926:18:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25950:4:10", + "nodeType": "YulIdentifier", + "src": "25950:4:10" + }, + { + "name": "headStart", + "nativeSrc": "25956:9:10", + "nodeType": "YulIdentifier", + "src": "25956:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25946:3:10", + "nodeType": "YulIdentifier", + "src": "25946:3:10" + }, + "nativeSrc": "25946:20:10", + "nodeType": "YulFunctionCall", + "src": "25946:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25919:6:10", + "nodeType": "YulIdentifier", + "src": "25919:6:10" + }, + "nativeSrc": "25919:48:10", + "nodeType": "YulFunctionCall", + "src": "25919:48:10" + }, + "nativeSrc": "25919:48:10", + "nodeType": "YulExpressionStatement", + "src": "25919:48:10" + }, + { + "nativeSrc": "25976:136:10", + "nodeType": "YulAssignment", + "src": "25976:136:10", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26098:6:10", + "nodeType": "YulIdentifier", + "src": "26098:6:10" + }, + { + "name": "tail", + "nativeSrc": "26107:4:10", + "nodeType": "YulIdentifier", + "src": "26107:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack", + "nativeSrc": "25984:113:10", + "nodeType": "YulIdentifier", + "src": "25984:113:10" + }, + "nativeSrc": "25984:128:10", + "nodeType": "YulFunctionCall", + "src": "25984:128:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25976:4:10", + "nodeType": "YulIdentifier", + "src": "25976:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26133:9:10", + "nodeType": "YulIdentifier", + "src": "26133:9:10" + }, + { + "kind": "number", + "nativeSrc": "26144:2:10", + "nodeType": "YulLiteral", + "src": "26144:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26129:3:10", + "nodeType": "YulIdentifier", + "src": "26129:3:10" + }, + "nativeSrc": "26129:18:10", + "nodeType": "YulFunctionCall", + "src": "26129:18:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "26153:4:10", + "nodeType": "YulIdentifier", + "src": "26153:4:10" + }, + { + "name": "headStart", + "nativeSrc": "26159:9:10", + "nodeType": "YulIdentifier", + "src": "26159:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26149:3:10", + "nodeType": "YulIdentifier", + "src": "26149:3:10" + }, + "nativeSrc": "26149:20:10", + "nodeType": "YulFunctionCall", + "src": "26149:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26122:6:10", + "nodeType": "YulIdentifier", + "src": "26122:6:10" + }, + "nativeSrc": "26122:48:10", + "nodeType": "YulFunctionCall", + "src": "26122:48:10" + }, + "nativeSrc": "26122:48:10", + "nodeType": "YulExpressionStatement", + "src": "26122:48:10" + }, + { + "nativeSrc": "26179:84:10", + "nodeType": "YulAssignment", + "src": "26179:84:10", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "26249:6:10", + "nodeType": "YulIdentifier", + "src": "26249:6:10" + }, + { + "name": "tail", + "nativeSrc": "26258:4:10", + "nodeType": "YulIdentifier", + "src": "26258:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "26187:61:10", + "nodeType": "YulIdentifier", + "src": "26187:61:10" + }, + "nativeSrc": "26187:76:10", + "nodeType": "YulFunctionCall", + "src": "26187:76:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26179:4:10", + "nodeType": "YulIdentifier", + "src": "26179:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "26315:6:10", + "nodeType": "YulIdentifier", + "src": "26315:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26328:9:10", + "nodeType": "YulIdentifier", + "src": "26328:9:10" + }, + { + "kind": "number", + "nativeSrc": "26339:2:10", + "nodeType": "YulLiteral", + "src": "26339:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26324:3:10", + "nodeType": "YulIdentifier", + "src": "26324:3:10" + }, + "nativeSrc": "26324:18:10", + "nodeType": "YulFunctionCall", + "src": "26324:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "26273:41:10", + "nodeType": "YulIdentifier", + "src": "26273:41:10" + }, + "nativeSrc": "26273:70:10", + "nodeType": "YulFunctionCall", + "src": "26273:70:10" + }, + "nativeSrc": "26273:70:10", + "nodeType": "YulExpressionStatement", + "src": "26273:70:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26364:9:10", + "nodeType": "YulIdentifier", + "src": "26364:9:10" + }, + { + "kind": "number", + "nativeSrc": "26375:3:10", + "nodeType": "YulLiteral", + "src": "26375:3:10", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26360:3:10", + "nodeType": "YulIdentifier", + "src": "26360:3:10" + }, + "nativeSrc": "26360:19:10", + "nodeType": "YulFunctionCall", + "src": "26360:19:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "26385:4:10", + "nodeType": "YulIdentifier", + "src": "26385:4:10" + }, + { + "name": "headStart", + "nativeSrc": "26391:9:10", + "nodeType": "YulIdentifier", + "src": "26391:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26381:3:10", + "nodeType": "YulIdentifier", + "src": "26381:3:10" + }, + "nativeSrc": "26381:20:10", + "nodeType": "YulFunctionCall", + "src": "26381:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26353:6:10", + "nodeType": "YulIdentifier", + "src": "26353:6:10" + }, + "nativeSrc": "26353:49:10", + "nodeType": "YulFunctionCall", + "src": "26353:49:10" + }, + "nativeSrc": "26353:49:10", + "nodeType": "YulExpressionStatement", + "src": "26353:49:10" + }, + { + "nativeSrc": "26411:84:10", + "nodeType": "YulAssignment", + "src": "26411:84:10", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "26481:6:10", + "nodeType": "YulIdentifier", + "src": "26481:6:10" + }, + { + "name": "tail", + "nativeSrc": "26490:4:10", + "nodeType": "YulIdentifier", + "src": "26490:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "26419:61:10", + "nodeType": "YulIdentifier", + "src": "26419:61:10" + }, + "nativeSrc": "26419:76:10", + "nodeType": "YulFunctionCall", + "src": "26419:76:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26411:4:10", + "nodeType": "YulIdentifier", + "src": "26411:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr_t_bytes4_t_bytes_memory_ptr__to_t_address_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr_t_bytes4_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "25477:1025:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25731:9:10", + "nodeType": "YulTypedName", + "src": "25731:9:10", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "25743:6:10", + "nodeType": "YulTypedName", + "src": "25743:6:10", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "25751:6:10", + "nodeType": "YulTypedName", + "src": "25751:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "25759:6:10", + "nodeType": "YulTypedName", + "src": "25759:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "25767:6:10", + "nodeType": "YulTypedName", + "src": "25767:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25775:6:10", + "nodeType": "YulTypedName", + "src": "25775:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25786:4:10", + "nodeType": "YulTypedName", + "src": "25786:4:10", + "type": "" + } + ], + "src": "25477:1025:10" + }, + { + "body": { + "nativeSrc": "26619:73:10", + "nodeType": "YulBlock", + "src": "26619:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26636:3:10", + "nodeType": "YulIdentifier", + "src": "26636:3:10" + }, + { + "name": "length", + "nativeSrc": "26641:6:10", + "nodeType": "YulIdentifier", + "src": "26641:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26629:6:10", + "nodeType": "YulIdentifier", + "src": "26629:6:10" + }, + "nativeSrc": "26629:19:10", + "nodeType": "YulFunctionCall", + "src": "26629:19:10" + }, + "nativeSrc": "26629:19:10", + "nodeType": "YulExpressionStatement", + "src": "26629:19:10" + }, + { + "nativeSrc": "26657:29:10", + "nodeType": "YulAssignment", + "src": "26657:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26676:3:10", + "nodeType": "YulIdentifier", + "src": "26676:3:10" + }, + { + "kind": "number", + "nativeSrc": "26681:4:10", + "nodeType": "YulLiteral", + "src": "26681:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26672:3:10", + "nodeType": "YulIdentifier", + "src": "26672:3:10" + }, + "nativeSrc": "26672:14:10", + "nodeType": "YulFunctionCall", + "src": "26672:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "26657:11:10", + "nodeType": "YulIdentifier", + "src": "26657:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "26508:184:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "26591:3:10", + "nodeType": "YulTypedName", + "src": "26591:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "26596:6:10", + "nodeType": "YulTypedName", + "src": "26596:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "26607:11:10", + "nodeType": "YulTypedName", + "src": "26607:11:10", + "type": "" + } + ], + "src": "26508:184:10" + }, + { + "body": { + "nativeSrc": "26772:28:10", + "nodeType": "YulBlock", + "src": "26772:28:10", + "statements": [ + { + "nativeSrc": "26782:11:10", + "nodeType": "YulAssignment", + "src": "26782:11:10", + "value": { + "name": "ptr", + "nativeSrc": "26790:3:10", + "nodeType": "YulIdentifier", + "src": "26790:3:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "26782:4:10", + "nodeType": "YulIdentifier", + "src": "26782:4:10" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "26698:102:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "26759:3:10", + "nodeType": "YulTypedName", + "src": "26759:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "26767:4:10", + "nodeType": "YulTypedName", + "src": "26767:4:10", + "type": "" + } + ], + "src": "26698:102:10" + }, + { + "body": { + "nativeSrc": "26861:53:10", + "nodeType": "YulBlock", + "src": "26861:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26878:3:10", + "nodeType": "YulIdentifier", + "src": "26878:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "26901:5:10", + "nodeType": "YulIdentifier", + "src": "26901:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "26883:17:10", + "nodeType": "YulIdentifier", + "src": "26883:17:10" + }, + "nativeSrc": "26883:24:10", + "nodeType": "YulFunctionCall", + "src": "26883:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26871:6:10", + "nodeType": "YulIdentifier", + "src": "26871:6:10" + }, + "nativeSrc": "26871:37:10", + "nodeType": "YulFunctionCall", + "src": "26871:37:10" + }, + "nativeSrc": "26871:37:10", + "nodeType": "YulExpressionStatement", + "src": "26871:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nativeSrc": "26806:108:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "26849:5:10", + "nodeType": "YulTypedName", + "src": "26849:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "26856:3:10", + "nodeType": "YulTypedName", + "src": "26856:3:10", + "type": "" + } + ], + "src": "26806:108:10" + }, + { + "body": { + "nativeSrc": "27000:99:10", + "nodeType": "YulBlock", + "src": "27000:99:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "27044:6:10", + "nodeType": "YulIdentifier", + "src": "27044:6:10" + }, + { + "name": "pos", + "nativeSrc": "27052:3:10", + "nodeType": "YulIdentifier", + "src": "27052:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nativeSrc": "27010:33:10", + "nodeType": "YulIdentifier", + "src": "27010:33:10" + }, + "nativeSrc": "27010:46:10", + "nodeType": "YulFunctionCall", + "src": "27010:46:10" + }, + "nativeSrc": "27010:46:10", + "nodeType": "YulExpressionStatement", + "src": "27010:46:10" + }, + { + "nativeSrc": "27065:28:10", + "nodeType": "YulAssignment", + "src": "27065:28:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27083:3:10", + "nodeType": "YulIdentifier", + "src": "27083:3:10" + }, + { + "kind": "number", + "nativeSrc": "27088:4:10", + "nodeType": "YulLiteral", + "src": "27088:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27079:3:10", + "nodeType": "YulIdentifier", + "src": "27079:3:10" + }, + "nativeSrc": "27079:14:10", + "nodeType": "YulFunctionCall", + "src": "27079:14:10" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "27065:10:10", + "nodeType": "YulIdentifier", + "src": "27065:10:10" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "26920:179:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "26973:6:10", + "nodeType": "YulTypedName", + "src": "26973:6:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "26981:3:10", + "nodeType": "YulTypedName", + "src": "26981:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "26989:10:10", + "nodeType": "YulTypedName", + "src": "26989:10:10", + "type": "" + } + ], + "src": "26920:179:10" + }, + { + "body": { + "nativeSrc": "27163:64:10", + "nodeType": "YulBlock", + "src": "27163:64:10", + "statements": [ + { + "nativeSrc": "27173:48:10", + "nodeType": "YulAssignment", + "src": "27173:48:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "27203:3:10", + "nodeType": "YulIdentifier", + "src": "27203:3:10" + }, + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "27212:3:10", + "nodeType": "YulIdentifier", + "src": "27212:3:10" + }, + { + "kind": "number", + "nativeSrc": "27217:2:10", + "nodeType": "YulLiteral", + "src": "27217:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27208:3:10", + "nodeType": "YulIdentifier", + "src": "27208:3:10" + }, + "nativeSrc": "27208:12:10", + "nodeType": "YulFunctionCall", + "src": "27208:12:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "27182:20:10", + "nodeType": "YulIdentifier", + "src": "27182:20:10" + }, + "nativeSrc": "27182:39:10", + "nodeType": "YulFunctionCall", + "src": "27182:39:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "27173:5:10", + "nodeType": "YulIdentifier", + "src": "27173:5:10" + } + ] + } + ] + }, + "name": "calldata_access_t_address", + "nativeSrc": "27105:122:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "baseRef", + "nativeSrc": "27140:7:10", + "nodeType": "YulTypedName", + "src": "27140:7:10", + "type": "" + }, + { + "name": "ptr", + "nativeSrc": "27149:3:10", + "nodeType": "YulTypedName", + "src": "27149:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "27157:5:10", + "nodeType": "YulTypedName", + "src": "27157:5:10", + "type": "" + } + ], + "src": "27105:122:10" + }, + { + "body": { + "nativeSrc": "27310:38:10", + "nodeType": "YulBlock", + "src": "27310:38:10", + "statements": [ + { + "nativeSrc": "27320:22:10", + "nodeType": "YulAssignment", + "src": "27320:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "27332:3:10", + "nodeType": "YulIdentifier", + "src": "27332:3:10" + }, + { + "kind": "number", + "nativeSrc": "27337:4:10", + "nodeType": "YulLiteral", + "src": "27337:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27328:3:10", + "nodeType": "YulIdentifier", + "src": "27328:3:10" + }, + "nativeSrc": "27328:14:10", + "nodeType": "YulFunctionCall", + "src": "27328:14:10" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "27320:4:10", + "nodeType": "YulIdentifier", + "src": "27320:4:10" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "27233:115:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "27297:3:10", + "nodeType": "YulTypedName", + "src": "27297:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "27305:4:10", + "nodeType": "YulTypedName", + "src": "27305:4:10", + "type": "" + } + ], + "src": "27233:115:10" + }, + { + "body": { + "nativeSrc": "27518:565:10", + "nodeType": "YulBlock", + "src": "27518:565:10", + "statements": [ + { + "nativeSrc": "27529:93:10", + "nodeType": "YulAssignment", + "src": "27529:93:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27610:3:10", + "nodeType": "YulIdentifier", + "src": "27610:3:10" + }, + { + "name": "length", + "nativeSrc": "27615:6:10", + "nodeType": "YulIdentifier", + "src": "27615:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "27536:73:10", + "nodeType": "YulIdentifier", + "src": "27536:73:10" + }, + "nativeSrc": "27536:86:10", + "nodeType": "YulFunctionCall", + "src": "27536:86:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27529:3:10", + "nodeType": "YulIdentifier", + "src": "27529:3:10" + } + ] + }, + { + "nativeSrc": "27631:73:10", + "nodeType": "YulVariableDeclaration", + "src": "27631:73:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "27698:5:10", + "nodeType": "YulIdentifier", + "src": "27698:5:10" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "27646:51:10", + "nodeType": "YulIdentifier", + "src": "27646:51:10" + }, + "nativeSrc": "27646:58:10", + "nodeType": "YulFunctionCall", + "src": "27646:58:10" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "27635:7:10", + "nodeType": "YulTypedName", + "src": "27635:7:10", + "type": "" + } + ] + }, + { + "nativeSrc": "27713:21:10", + "nodeType": "YulVariableDeclaration", + "src": "27713:21:10", + "value": { + "name": "baseRef", + "nativeSrc": "27727:7:10", + "nodeType": "YulIdentifier", + "src": "27727:7:10" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "27717:6:10", + "nodeType": "YulTypedName", + "src": "27717:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27803:255:10", + "nodeType": "YulBlock", + "src": "27803:255:10", + "statements": [ + { + "nativeSrc": "27817:63:10", + "nodeType": "YulVariableDeclaration", + "src": "27817:63:10", + "value": { + "arguments": [ + { + "name": "baseRef", + "nativeSrc": "27864:7:10", + "nodeType": "YulIdentifier", + "src": "27864:7:10" + }, + { + "name": "srcPtr", + "nativeSrc": "27873:6:10", + "nodeType": "YulIdentifier", + "src": "27873:6:10" + } + ], + "functionName": { + "name": "calldata_access_t_address", + "nativeSrc": "27838:25:10", + "nodeType": "YulIdentifier", + "src": "27838:25:10" + }, + "nativeSrc": "27838:42:10", + "nodeType": "YulFunctionCall", + "src": "27838:42:10" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "27821:13:10", + "nodeType": "YulTypedName", + "src": "27821:13:10", + "type": "" + } + ] + }, + { + "nativeSrc": "27893:70:10", + "nodeType": "YulAssignment", + "src": "27893:70:10", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "27944:13:10", + "nodeType": "YulIdentifier", + "src": "27944:13:10" + }, + { + "name": "pos", + "nativeSrc": "27959:3:10", + "nodeType": "YulIdentifier", + "src": "27959:3:10" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "27900:43:10", + "nodeType": "YulIdentifier", + "src": "27900:43:10" + }, + "nativeSrc": "27900:63:10", + "nodeType": "YulFunctionCall", + "src": "27900:63:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27893:3:10", + "nodeType": "YulIdentifier", + "src": "27893:3:10" + } + ] + }, + { + "nativeSrc": "27976:72:10", + "nodeType": "YulAssignment", + "src": "27976:72:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "28041:6:10", + "nodeType": "YulIdentifier", + "src": "28041:6:10" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "27986:54:10", + "nodeType": "YulIdentifier", + "src": "27986:54:10" + }, + "nativeSrc": "27986:62:10", + "nodeType": "YulFunctionCall", + "src": "27986:62:10" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "27976:6:10", + "nodeType": "YulIdentifier", + "src": "27976:6:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "27765:1:10", + "nodeType": "YulIdentifier", + "src": "27765:1:10" + }, + { + "name": "length", + "nativeSrc": "27768:6:10", + "nodeType": "YulIdentifier", + "src": "27768:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "27762:2:10", + "nodeType": "YulIdentifier", + "src": "27762:2:10" + }, + "nativeSrc": "27762:13:10", + "nodeType": "YulFunctionCall", + "src": "27762:13:10" + }, + "nativeSrc": "27743:315:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "27776:18:10", + "nodeType": "YulBlock", + "src": "27776:18:10", + "statements": [ + { + "nativeSrc": "27778:14:10", + "nodeType": "YulAssignment", + "src": "27778:14:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "27787:1:10", + "nodeType": "YulIdentifier", + "src": "27787:1:10" + }, + { + "kind": "number", + "nativeSrc": "27790:1:10", + "nodeType": "YulLiteral", + "src": "27790:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27783:3:10", + "nodeType": "YulIdentifier", + "src": "27783:3:10" + }, + "nativeSrc": "27783:9:10", + "nodeType": "YulFunctionCall", + "src": "27783:9:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "27778:1:10", + "nodeType": "YulIdentifier", + "src": "27778:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "27747:14:10", + "nodeType": "YulBlock", + "src": "27747:14:10", + "statements": [ + { + "nativeSrc": "27749:10:10", + "nodeType": "YulVariableDeclaration", + "src": "27749:10:10", + "value": { + "kind": "number", + "nativeSrc": "27758:1:10", + "nodeType": "YulLiteral", + "src": "27758:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "27753:1:10", + "nodeType": "YulTypedName", + "src": "27753:1:10", + "type": "" + } + ] + } + ] + }, + "src": "27743:315:10" + }, + { + "nativeSrc": "28067:10:10", + "nodeType": "YulAssignment", + "src": "28067:10:10", + "value": { + "name": "pos", + "nativeSrc": "28074:3:10", + "nodeType": "YulIdentifier", + "src": "28074:3:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28067:3:10", + "nodeType": "YulIdentifier", + "src": "28067:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_address_$dyn_calldata_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "27384:699:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "27489:5:10", + "nodeType": "YulTypedName", + "src": "27489:5:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "27496:6:10", + "nodeType": "YulTypedName", + "src": "27496:6:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "27504:3:10", + "nodeType": "YulTypedName", + "src": "27504:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27513:3:10", + "nodeType": "YulTypedName", + "src": "27513:3:10", + "type": "" + } + ], + "src": "27384:699:10" + }, + { + "body": { + "nativeSrc": "28247:235:10", + "nodeType": "YulBlock", + "src": "28247:235:10", + "statements": [ + { + "nativeSrc": "28257:26:10", + "nodeType": "YulAssignment", + "src": "28257:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28269:9:10", + "nodeType": "YulIdentifier", + "src": "28269:9:10" + }, + { + "kind": "number", + "nativeSrc": "28280:2:10", + "nodeType": "YulLiteral", + "src": "28280:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28265:3:10", + "nodeType": "YulIdentifier", + "src": "28265:3:10" + }, + "nativeSrc": "28265:18:10", + "nodeType": "YulFunctionCall", + "src": "28265:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "28257:4:10", + "nodeType": "YulIdentifier", + "src": "28257:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28304:9:10", + "nodeType": "YulIdentifier", + "src": "28304:9:10" + }, + { + "kind": "number", + "nativeSrc": "28315:1:10", + "nodeType": "YulLiteral", + "src": "28315:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28300:3:10", + "nodeType": "YulIdentifier", + "src": "28300:3:10" + }, + "nativeSrc": "28300:17:10", + "nodeType": "YulFunctionCall", + "src": "28300:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "28323:4:10", + "nodeType": "YulIdentifier", + "src": "28323:4:10" + }, + { + "name": "headStart", + "nativeSrc": "28329:9:10", + "nodeType": "YulIdentifier", + "src": "28329:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "28319:3:10", + "nodeType": "YulIdentifier", + "src": "28319:3:10" + }, + "nativeSrc": "28319:20:10", + "nodeType": "YulFunctionCall", + "src": "28319:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28293:6:10", + "nodeType": "YulIdentifier", + "src": "28293:6:10" + }, + "nativeSrc": "28293:47:10", + "nodeType": "YulFunctionCall", + "src": "28293:47:10" + }, + "nativeSrc": "28293:47:10", + "nodeType": "YulExpressionStatement", + "src": "28293:47:10" + }, + { + "nativeSrc": "28349:126:10", + "nodeType": "YulAssignment", + "src": "28349:126:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "28453:6:10", + "nodeType": "YulIdentifier", + "src": "28453:6:10" + }, + { + "name": "value1", + "nativeSrc": "28461:6:10", + "nodeType": "YulIdentifier", + "src": "28461:6:10" + }, + { + "name": "tail", + "nativeSrc": "28470:4:10", + "nodeType": "YulIdentifier", + "src": "28470:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_calldata_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "28357:95:10", + "nodeType": "YulIdentifier", + "src": "28357:95:10" + }, + "nativeSrc": "28357:118:10", + "nodeType": "YulFunctionCall", + "src": "28357:118:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "28349:4:10", + "nodeType": "YulIdentifier", + "src": "28349:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "28089:393:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "28211:9:10", + "nodeType": "YulTypedName", + "src": "28211:9:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "28223:6:10", + "nodeType": "YulTypedName", + "src": "28223:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "28231:6:10", + "nodeType": "YulTypedName", + "src": "28231:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "28242:4:10", + "nodeType": "YulTypedName", + "src": "28242:4:10", + "type": "" + } + ], + "src": "28089:393:10" + }, + { + "body": { + "nativeSrc": "28580:1303:10", + "nodeType": "YulBlock", + "src": "28580:1303:10", + "statements": [ + { + "nativeSrc": "28591:51:10", + "nodeType": "YulVariableDeclaration", + "src": "28591:51:10", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "28638:3:10", + "nodeType": "YulIdentifier", + "src": "28638:3:10" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "28605:32:10", + "nodeType": "YulIdentifier", + "src": "28605:32:10" + }, + "nativeSrc": "28605:37:10", + "nodeType": "YulFunctionCall", + "src": "28605:37:10" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "28595:6:10", + "nodeType": "YulTypedName", + "src": "28595:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "28727:22:10", + "nodeType": "YulBlock", + "src": "28727:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "28729:16:10", + "nodeType": "YulIdentifier", + "src": "28729:16:10" + }, + "nativeSrc": "28729:18:10", + "nodeType": "YulFunctionCall", + "src": "28729:18:10" + }, + "nativeSrc": "28729:18:10", + "nodeType": "YulExpressionStatement", + "src": "28729:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "28699:6:10", + "nodeType": "YulIdentifier", + "src": "28699:6:10" + }, + { + "kind": "number", + "nativeSrc": "28707:18:10", + "nodeType": "YulLiteral", + "src": "28707:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "28696:2:10", + "nodeType": "YulIdentifier", + "src": "28696:2:10" + }, + "nativeSrc": "28696:30:10", + "nodeType": "YulFunctionCall", + "src": "28696:30:10" + }, + "nativeSrc": "28693:56:10", + "nodeType": "YulIf", + "src": "28693:56:10" + }, + { + "nativeSrc": "28759:52:10", + "nodeType": "YulVariableDeclaration", + "src": "28759:52:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "28805:4:10", + "nodeType": "YulIdentifier", + "src": "28805:4:10" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "28799:5:10", + "nodeType": "YulIdentifier", + "src": "28799:5:10" + }, + "nativeSrc": "28799:11:10", + "nodeType": "YulFunctionCall", + "src": "28799:11:10" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "28773:25:10", + "nodeType": "YulIdentifier", + "src": "28773:25:10" + }, + "nativeSrc": "28773:38:10", + "nodeType": "YulFunctionCall", + "src": "28773:38:10" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "28763:6:10", + "nodeType": "YulTypedName", + "src": "28763:6:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "28904:4:10", + "nodeType": "YulIdentifier", + "src": "28904:4:10" + }, + { + "name": "oldLen", + "nativeSrc": "28910:6:10", + "nodeType": "YulIdentifier", + "src": "28910:6:10" + }, + { + "name": "newLen", + "nativeSrc": "28918:6:10", + "nodeType": "YulIdentifier", + "src": "28918:6:10" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "28858:45:10", + "nodeType": "YulIdentifier", + "src": "28858:45:10" + }, + "nativeSrc": "28858:67:10", + "nodeType": "YulFunctionCall", + "src": "28858:67:10" + }, + "nativeSrc": "28858:67:10", + "nodeType": "YulExpressionStatement", + "src": "28858:67:10" + }, + { + "nativeSrc": "28935:18:10", + "nodeType": "YulVariableDeclaration", + "src": "28935:18:10", + "value": { + "kind": "number", + "nativeSrc": "28952:1:10", + "nodeType": "YulLiteral", + "src": "28952:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "28939:9:10", + "nodeType": "YulTypedName", + "src": "28939:9:10", + "type": "" + } + ] + }, + { + "nativeSrc": "28963:17:10", + "nodeType": "YulAssignment", + "src": "28963:17:10", + "value": { + "kind": "number", + "nativeSrc": "28976:4:10", + "nodeType": "YulLiteral", + "src": "28976:4:10", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "28963:9:10", + "nodeType": "YulIdentifier", + "src": "28963:9:10" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "29027:611:10", + "nodeType": "YulBlock", + "src": "29027:611:10", + "statements": [ + { + "nativeSrc": "29041:37:10", + "nodeType": "YulVariableDeclaration", + "src": "29041:37:10", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "29060:6:10", + "nodeType": "YulIdentifier", + "src": "29060:6:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29072:4:10", + "nodeType": "YulLiteral", + "src": "29072:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "29068:3:10", + "nodeType": "YulIdentifier", + "src": "29068:3:10" + }, + "nativeSrc": "29068:9:10", + "nodeType": "YulFunctionCall", + "src": "29068:9:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "29056:3:10", + "nodeType": "YulIdentifier", + "src": "29056:3:10" + }, + "nativeSrc": "29056:22:10", + "nodeType": "YulFunctionCall", + "src": "29056:22:10" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "29045:7:10", + "nodeType": "YulTypedName", + "src": "29045:7:10", + "type": "" + } + ] + }, + { + "nativeSrc": "29092:51:10", + "nodeType": "YulVariableDeclaration", + "src": "29092:51:10", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "29138:4:10", + "nodeType": "YulIdentifier", + "src": "29138:4:10" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "29106:31:10", + "nodeType": "YulIdentifier", + "src": "29106:31:10" + }, + "nativeSrc": "29106:37:10", + "nodeType": "YulFunctionCall", + "src": "29106:37:10" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "29096:6:10", + "nodeType": "YulTypedName", + "src": "29096:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "29156:10:10", + "nodeType": "YulVariableDeclaration", + "src": "29156:10:10", + "value": { + "kind": "number", + "nativeSrc": "29165:1:10", + "nodeType": "YulLiteral", + "src": "29165:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "29160:1:10", + "nodeType": "YulTypedName", + "src": "29160:1:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29224:163:10", + "nodeType": "YulBlock", + "src": "29224:163:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "29249:6:10", + "nodeType": "YulIdentifier", + "src": "29249:6:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "29267:3:10", + "nodeType": "YulIdentifier", + "src": "29267:3:10" + }, + { + "name": "srcOffset", + "nativeSrc": "29272:9:10", + "nodeType": "YulIdentifier", + "src": "29272:9:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29263:3:10", + "nodeType": "YulIdentifier", + "src": "29263:3:10" + }, + "nativeSrc": "29263:19:10", + "nodeType": "YulFunctionCall", + "src": "29263:19:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29257:5:10", + "nodeType": "YulIdentifier", + "src": "29257:5:10" + }, + "nativeSrc": "29257:26:10", + "nodeType": "YulFunctionCall", + "src": "29257:26:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "29242:6:10", + "nodeType": "YulIdentifier", + "src": "29242:6:10" + }, + "nativeSrc": "29242:42:10", + "nodeType": "YulFunctionCall", + "src": "29242:42:10" + }, + "nativeSrc": "29242:42:10", + "nodeType": "YulExpressionStatement", + "src": "29242:42:10" + }, + { + "nativeSrc": "29301:24:10", + "nodeType": "YulAssignment", + "src": "29301:24:10", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "29315:6:10", + "nodeType": "YulIdentifier", + "src": "29315:6:10" + }, + { + "kind": "number", + "nativeSrc": "29323:1:10", + "nodeType": "YulLiteral", + "src": "29323:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29311:3:10", + "nodeType": "YulIdentifier", + "src": "29311:3:10" + }, + "nativeSrc": "29311:14:10", + "nodeType": "YulFunctionCall", + "src": "29311:14:10" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "29301:6:10", + "nodeType": "YulIdentifier", + "src": "29301:6:10" + } + ] + }, + { + "nativeSrc": "29342:31:10", + "nodeType": "YulAssignment", + "src": "29342:31:10", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "29359:9:10", + "nodeType": "YulIdentifier", + "src": "29359:9:10" + }, + { + "kind": "number", + "nativeSrc": "29370:2:10", + "nodeType": "YulLiteral", + "src": "29370:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29355:3:10", + "nodeType": "YulIdentifier", + "src": "29355:3:10" + }, + "nativeSrc": "29355:18:10", + "nodeType": "YulFunctionCall", + "src": "29355:18:10" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "29342:9:10", + "nodeType": "YulIdentifier", + "src": "29342:9:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "29190:1:10", + "nodeType": "YulIdentifier", + "src": "29190:1:10" + }, + { + "name": "loopEnd", + "nativeSrc": "29193:7:10", + "nodeType": "YulIdentifier", + "src": "29193:7:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "29187:2:10", + "nodeType": "YulIdentifier", + "src": "29187:2:10" + }, + "nativeSrc": "29187:14:10", + "nodeType": "YulFunctionCall", + "src": "29187:14:10" + }, + "nativeSrc": "29179:208:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "29202:21:10", + "nodeType": "YulBlock", + "src": "29202:21:10", + "statements": [ + { + "nativeSrc": "29204:17:10", + "nodeType": "YulAssignment", + "src": "29204:17:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "29213:1:10", + "nodeType": "YulIdentifier", + "src": "29213:1:10" + }, + { + "kind": "number", + "nativeSrc": "29216:4:10", + "nodeType": "YulLiteral", + "src": "29216:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29209:3:10", + "nodeType": "YulIdentifier", + "src": "29209:3:10" + }, + "nativeSrc": "29209:12:10", + "nodeType": "YulFunctionCall", + "src": "29209:12:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "29204:1:10", + "nodeType": "YulIdentifier", + "src": "29204:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "29183:3:10", + "nodeType": "YulBlock", + "src": "29183:3:10", + "statements": [] + }, + "src": "29179:208:10" + }, + { + "body": { + "nativeSrc": "29423:156:10", + "nodeType": "YulBlock", + "src": "29423:156:10", + "statements": [ + { + "nativeSrc": "29441:43:10", + "nodeType": "YulVariableDeclaration", + "src": "29441:43:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "29468:3:10", + "nodeType": "YulIdentifier", + "src": "29468:3:10" + }, + { + "name": "srcOffset", + "nativeSrc": "29473:9:10", + "nodeType": "YulIdentifier", + "src": "29473:9:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29464:3:10", + "nodeType": "YulIdentifier", + "src": "29464:3:10" + }, + "nativeSrc": "29464:19:10", + "nodeType": "YulFunctionCall", + "src": "29464:19:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29458:5:10", + "nodeType": "YulIdentifier", + "src": "29458:5:10" + }, + "nativeSrc": "29458:26:10", + "nodeType": "YulFunctionCall", + "src": "29458:26:10" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "29445:9:10", + "nodeType": "YulTypedName", + "src": "29445:9:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "29508:6:10", + "nodeType": "YulIdentifier", + "src": "29508:6:10" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "29535:9:10", + "nodeType": "YulIdentifier", + "src": "29535:9:10" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "29550:6:10", + "nodeType": "YulIdentifier", + "src": "29550:6:10" + }, + { + "kind": "number", + "nativeSrc": "29558:4:10", + "nodeType": "YulLiteral", + "src": "29558:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "29546:3:10", + "nodeType": "YulIdentifier", + "src": "29546:3:10" + }, + "nativeSrc": "29546:17:10", + "nodeType": "YulFunctionCall", + "src": "29546:17:10" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "29516:18:10", + "nodeType": "YulIdentifier", + "src": "29516:18:10" + }, + "nativeSrc": "29516:48:10", + "nodeType": "YulFunctionCall", + "src": "29516:48:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "29501:6:10", + "nodeType": "YulIdentifier", + "src": "29501:6:10" + }, + "nativeSrc": "29501:64:10", + "nodeType": "YulFunctionCall", + "src": "29501:64:10" + }, + "nativeSrc": "29501:64:10", + "nodeType": "YulExpressionStatement", + "src": "29501:64:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "29406:7:10", + "nodeType": "YulIdentifier", + "src": "29406:7:10" + }, + { + "name": "newLen", + "nativeSrc": "29415:6:10", + "nodeType": "YulIdentifier", + "src": "29415:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "29403:2:10", + "nodeType": "YulIdentifier", + "src": "29403:2:10" + }, + "nativeSrc": "29403:19:10", + "nodeType": "YulFunctionCall", + "src": "29403:19:10" + }, + "nativeSrc": "29400:179:10", + "nodeType": "YulIf", + "src": "29400:179:10" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "29599:4:10", + "nodeType": "YulIdentifier", + "src": "29599:4:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "29613:6:10", + "nodeType": "YulIdentifier", + "src": "29613:6:10" + }, + { + "kind": "number", + "nativeSrc": "29621:1:10", + "nodeType": "YulLiteral", + "src": "29621:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "29609:3:10", + "nodeType": "YulIdentifier", + "src": "29609:3:10" + }, + "nativeSrc": "29609:14:10", + "nodeType": "YulFunctionCall", + "src": "29609:14:10" + }, + { + "kind": "number", + "nativeSrc": "29625:1:10", + "nodeType": "YulLiteral", + "src": "29625:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29605:3:10", + "nodeType": "YulIdentifier", + "src": "29605:3:10" + }, + "nativeSrc": "29605:22:10", + "nodeType": "YulFunctionCall", + "src": "29605:22:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "29592:6:10", + "nodeType": "YulIdentifier", + "src": "29592:6:10" + }, + "nativeSrc": "29592:36:10", + "nodeType": "YulFunctionCall", + "src": "29592:36:10" + }, + "nativeSrc": "29592:36:10", + "nodeType": "YulExpressionStatement", + "src": "29592:36:10" + } + ] + }, + "nativeSrc": "29020:618:10", + "nodeType": "YulCase", + "src": "29020:618:10", + "value": { + "kind": "number", + "nativeSrc": "29025:1:10", + "nodeType": "YulLiteral", + "src": "29025:1:10", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "29655:222:10", + "nodeType": "YulBlock", + "src": "29655:222:10", + "statements": [ + { + "nativeSrc": "29669:14:10", + "nodeType": "YulVariableDeclaration", + "src": "29669:14:10", + "value": { + "kind": "number", + "nativeSrc": "29682:1:10", + "nodeType": "YulLiteral", + "src": "29682:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "29673:5:10", + "nodeType": "YulTypedName", + "src": "29673:5:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29706:67:10", + "nodeType": "YulBlock", + "src": "29706:67:10", + "statements": [ + { + "nativeSrc": "29724:35:10", + "nodeType": "YulAssignment", + "src": "29724:35:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "29743:3:10", + "nodeType": "YulIdentifier", + "src": "29743:3:10" + }, + { + "name": "srcOffset", + "nativeSrc": "29748:9:10", + "nodeType": "YulIdentifier", + "src": "29748:9:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29739:3:10", + "nodeType": "YulIdentifier", + "src": "29739:3:10" + }, + "nativeSrc": "29739:19:10", + "nodeType": "YulFunctionCall", + "src": "29739:19:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29733:5:10", + "nodeType": "YulIdentifier", + "src": "29733:5:10" + }, + "nativeSrc": "29733:26:10", + "nodeType": "YulFunctionCall", + "src": "29733:26:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "29724:5:10", + "nodeType": "YulIdentifier", + "src": "29724:5:10" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "29699:6:10", + "nodeType": "YulIdentifier", + "src": "29699:6:10" + }, + "nativeSrc": "29696:77:10", + "nodeType": "YulIf", + "src": "29696:77:10" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "29793:4:10", + "nodeType": "YulIdentifier", + "src": "29793:4:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29852:5:10", + "nodeType": "YulIdentifier", + "src": "29852:5:10" + }, + { + "name": "newLen", + "nativeSrc": "29859:6:10", + "nodeType": "YulIdentifier", + "src": "29859:6:10" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "29799:52:10", + "nodeType": "YulIdentifier", + "src": "29799:52:10" + }, + "nativeSrc": "29799:67:10", + "nodeType": "YulFunctionCall", + "src": "29799:67:10" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "29786:6:10", + "nodeType": "YulIdentifier", + "src": "29786:6:10" + }, + "nativeSrc": "29786:81:10", + "nodeType": "YulFunctionCall", + "src": "29786:81:10" + }, + "nativeSrc": "29786:81:10", + "nodeType": "YulExpressionStatement", + "src": "29786:81:10" + } + ] + }, + "nativeSrc": "29647:230:10", + "nodeType": "YulCase", + "src": "29647:230:10", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "29000:6:10", + "nodeType": "YulIdentifier", + "src": "29000:6:10" + }, + { + "kind": "number", + "nativeSrc": "29008:2:10", + "nodeType": "YulLiteral", + "src": "29008:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "28997:2:10", + "nodeType": "YulIdentifier", + "src": "28997:2:10" + }, + "nativeSrc": "28997:14:10", + "nodeType": "YulFunctionCall", + "src": "28997:14:10" + }, + "nativeSrc": "28990:887:10", + "nodeType": "YulSwitch", + "src": "28990:887:10" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "28488:1395:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "28569:4:10", + "nodeType": "YulTypedName", + "src": "28569:4:10", + "type": "" + }, + { + "name": "src", + "nativeSrc": "28575:3:10", + "nodeType": "YulTypedName", + "src": "28575:3:10", + "type": "" + } + ], + "src": "28488:1395:10" + }, + { + "body": { + "nativeSrc": "29963:40:10", + "nodeType": "YulBlock", + "src": "29963:40:10", + "statements": [ + { + "nativeSrc": "29974:22:10", + "nodeType": "YulAssignment", + "src": "29974:22:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "29990:5:10", + "nodeType": "YulIdentifier", + "src": "29990:5:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29984:5:10", + "nodeType": "YulIdentifier", + "src": "29984:5:10" + }, + "nativeSrc": "29984:12:10", + "nodeType": "YulFunctionCall", + "src": "29984:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "29974:6:10", + "nodeType": "YulIdentifier", + "src": "29974:6:10" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "29889:114:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "29946:5:10", + "nodeType": "YulTypedName", + "src": "29946:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "29956:6:10", + "nodeType": "YulTypedName", + "src": "29956:6:10", + "type": "" + } + ], + "src": "29889:114:10" + }, + { + "body": { + "nativeSrc": "30081:60:10", + "nodeType": "YulBlock", + "src": "30081:60:10", + "statements": [ + { + "nativeSrc": "30091:11:10", + "nodeType": "YulAssignment", + "src": "30091:11:10", + "value": { + "name": "ptr", + "nativeSrc": "30099:3:10", + "nodeType": "YulIdentifier", + "src": "30099:3:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "30091:4:10", + "nodeType": "YulIdentifier", + "src": "30091:4:10" + } + ] + }, + { + "nativeSrc": "30112:22:10", + "nodeType": "YulAssignment", + "src": "30112:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "30124:3:10", + "nodeType": "YulIdentifier", + "src": "30124:3:10" + }, + { + "kind": "number", + "nativeSrc": "30129:4:10", + "nodeType": "YulLiteral", + "src": "30129:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30120:3:10", + "nodeType": "YulIdentifier", + "src": "30120:3:10" + }, + "nativeSrc": "30120:14:10", + "nodeType": "YulFunctionCall", + "src": "30120:14:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "30112:4:10", + "nodeType": "YulIdentifier", + "src": "30112:4:10" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "30009:132:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "30068:3:10", + "nodeType": "YulTypedName", + "src": "30068:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "30076:4:10", + "nodeType": "YulTypedName", + "src": "30076:4:10", + "type": "" + } + ], + "src": "30009:132:10" + }, + { + "body": { + "nativeSrc": "30222:38:10", + "nodeType": "YulBlock", + "src": "30222:38:10", + "statements": [ + { + "nativeSrc": "30232:22:10", + "nodeType": "YulAssignment", + "src": "30232:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "30244:3:10", + "nodeType": "YulIdentifier", + "src": "30244:3:10" + }, + { + "kind": "number", + "nativeSrc": "30249:4:10", + "nodeType": "YulLiteral", + "src": "30249:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30240:3:10", + "nodeType": "YulIdentifier", + "src": "30240:3:10" + }, + "nativeSrc": "30240:14:10", + "nodeType": "YulFunctionCall", + "src": "30240:14:10" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "30232:4:10", + "nodeType": "YulIdentifier", + "src": "30232:4:10" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "30147:113:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "30209:3:10", + "nodeType": "YulTypedName", + "src": "30209:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "30217:4:10", + "nodeType": "YulTypedName", + "src": "30217:4:10", + "type": "" + } + ], + "src": "30147:113:10" + }, + { + "body": { + "nativeSrc": "30420:608:10", + "nodeType": "YulBlock", + "src": "30420:608:10", + "statements": [ + { + "nativeSrc": "30430:68:10", + "nodeType": "YulVariableDeclaration", + "src": "30430:68:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30492:5:10", + "nodeType": "YulIdentifier", + "src": "30492:5:10" + } + ], + "functionName": { + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "30444:47:10", + "nodeType": "YulIdentifier", + "src": "30444:47:10" + }, + "nativeSrc": "30444:54:10", + "nodeType": "YulFunctionCall", + "src": "30444:54:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "30434:6:10", + "nodeType": "YulTypedName", + "src": "30434:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "30507:93:10", + "nodeType": "YulAssignment", + "src": "30507:93:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30588:3:10", + "nodeType": "YulIdentifier", + "src": "30588:3:10" + }, + { + "name": "length", + "nativeSrc": "30593:6:10", + "nodeType": "YulIdentifier", + "src": "30593:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "30514:73:10", + "nodeType": "YulIdentifier", + "src": "30514:73:10" + }, + "nativeSrc": "30514:86:10", + "nodeType": "YulFunctionCall", + "src": "30514:86:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30507:3:10", + "nodeType": "YulIdentifier", + "src": "30507:3:10" + } + ] + }, + { + "nativeSrc": "30609:71:10", + "nodeType": "YulVariableDeclaration", + "src": "30609:71:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30674:5:10", + "nodeType": "YulIdentifier", + "src": "30674:5:10" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "30624:49:10", + "nodeType": "YulIdentifier", + "src": "30624:49:10" + }, + "nativeSrc": "30624:56:10", + "nodeType": "YulFunctionCall", + "src": "30624:56:10" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "30613:7:10", + "nodeType": "YulTypedName", + "src": "30613:7:10", + "type": "" + } + ] + }, + { + "nativeSrc": "30689:21:10", + "nodeType": "YulVariableDeclaration", + "src": "30689:21:10", + "value": { + "name": "baseRef", + "nativeSrc": "30703:7:10", + "nodeType": "YulIdentifier", + "src": "30703:7:10" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "30693:6:10", + "nodeType": "YulTypedName", + "src": "30693:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "30779:224:10", + "nodeType": "YulBlock", + "src": "30779:224:10", + "statements": [ + { + "nativeSrc": "30793:34:10", + "nodeType": "YulVariableDeclaration", + "src": "30793:34:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "30820:6:10", + "nodeType": "YulIdentifier", + "src": "30820:6:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "30814:5:10", + "nodeType": "YulIdentifier", + "src": "30814:5:10" + }, + "nativeSrc": "30814:13:10", + "nodeType": "YulFunctionCall", + "src": "30814:13:10" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "30797:13:10", + "nodeType": "YulTypedName", + "src": "30797:13:10", + "type": "" + } + ] + }, + { + "nativeSrc": "30840:70:10", + "nodeType": "YulAssignment", + "src": "30840:70:10", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "30891:13:10", + "nodeType": "YulIdentifier", + "src": "30891:13:10" + }, + { + "name": "pos", + "nativeSrc": "30906:3:10", + "nodeType": "YulIdentifier", + "src": "30906:3:10" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "30847:43:10", + "nodeType": "YulIdentifier", + "src": "30847:43:10" + }, + "nativeSrc": "30847:63:10", + "nodeType": "YulFunctionCall", + "src": "30847:63:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30840:3:10", + "nodeType": "YulIdentifier", + "src": "30840:3:10" + } + ] + }, + { + "nativeSrc": "30923:70:10", + "nodeType": "YulAssignment", + "src": "30923:70:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "30986:6:10", + "nodeType": "YulIdentifier", + "src": "30986:6:10" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "30933:52:10", + "nodeType": "YulIdentifier", + "src": "30933:52:10" + }, + "nativeSrc": "30933:60:10", + "nodeType": "YulFunctionCall", + "src": "30933:60:10" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "30923:6:10", + "nodeType": "YulIdentifier", + "src": "30923:6:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "30741:1:10", + "nodeType": "YulIdentifier", + "src": "30741:1:10" + }, + { + "name": "length", + "nativeSrc": "30744:6:10", + "nodeType": "YulIdentifier", + "src": "30744:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "30738:2:10", + "nodeType": "YulIdentifier", + "src": "30738:2:10" + }, + "nativeSrc": "30738:13:10", + "nodeType": "YulFunctionCall", + "src": "30738:13:10" + }, + "nativeSrc": "30719:284:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "30752:18:10", + "nodeType": "YulBlock", + "src": "30752:18:10", + "statements": [ + { + "nativeSrc": "30754:14:10", + "nodeType": "YulAssignment", + "src": "30754:14:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "30763:1:10", + "nodeType": "YulIdentifier", + "src": "30763:1:10" + }, + { + "kind": "number", + "nativeSrc": "30766:1:10", + "nodeType": "YulLiteral", + "src": "30766:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30759:3:10", + "nodeType": "YulIdentifier", + "src": "30759:3:10" + }, + "nativeSrc": "30759:9:10", + "nodeType": "YulFunctionCall", + "src": "30759:9:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "30754:1:10", + "nodeType": "YulIdentifier", + "src": "30754:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "30723:14:10", + "nodeType": "YulBlock", + "src": "30723:14:10", + "statements": [ + { + "nativeSrc": "30725:10:10", + "nodeType": "YulVariableDeclaration", + "src": "30725:10:10", + "value": { + "kind": "number", + "nativeSrc": "30734:1:10", + "nodeType": "YulLiteral", + "src": "30734:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "30729:1:10", + "nodeType": "YulTypedName", + "src": "30729:1:10", + "type": "" + } + ] + } + ] + }, + "src": "30719:284:10" + }, + { + "nativeSrc": "31012:10:10", + "nodeType": "YulAssignment", + "src": "31012:10:10", + "value": { + "name": "pos", + "nativeSrc": "31019:3:10", + "nodeType": "YulIdentifier", + "src": "31019:3:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "31012:3:10", + "nodeType": "YulIdentifier", + "src": "31012:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "30296:732:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "30399:5:10", + "nodeType": "YulTypedName", + "src": "30399:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "30406:3:10", + "nodeType": "YulTypedName", + "src": "30406:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "30415:3:10", + "nodeType": "YulTypedName", + "src": "30415:3:10", + "type": "" + } + ], + "src": "30296:732:10" + }, + { + "body": { + "nativeSrc": "31182:225:10", + "nodeType": "YulBlock", + "src": "31182:225:10", + "statements": [ + { + "nativeSrc": "31192:26:10", + "nodeType": "YulAssignment", + "src": "31192:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31204:9:10", + "nodeType": "YulIdentifier", + "src": "31204:9:10" + }, + { + "kind": "number", + "nativeSrc": "31215:2:10", + "nodeType": "YulLiteral", + "src": "31215:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31200:3:10", + "nodeType": "YulIdentifier", + "src": "31200:3:10" + }, + "nativeSrc": "31200:18:10", + "nodeType": "YulFunctionCall", + "src": "31200:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31192:4:10", + "nodeType": "YulIdentifier", + "src": "31192:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31239:9:10", + "nodeType": "YulIdentifier", + "src": "31239:9:10" + }, + { + "kind": "number", + "nativeSrc": "31250:1:10", + "nodeType": "YulLiteral", + "src": "31250:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31235:3:10", + "nodeType": "YulIdentifier", + "src": "31235:3:10" + }, + "nativeSrc": "31235:17:10", + "nodeType": "YulFunctionCall", + "src": "31235:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "31258:4:10", + "nodeType": "YulIdentifier", + "src": "31258:4:10" + }, + { + "name": "headStart", + "nativeSrc": "31264:9:10", + "nodeType": "YulIdentifier", + "src": "31264:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31254:3:10", + "nodeType": "YulIdentifier", + "src": "31254:3:10" + }, + "nativeSrc": "31254:20:10", + "nodeType": "YulFunctionCall", + "src": "31254:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31228:6:10", + "nodeType": "YulIdentifier", + "src": "31228:6:10" + }, + "nativeSrc": "31228:47:10", + "nodeType": "YulFunctionCall", + "src": "31228:47:10" + }, + "nativeSrc": "31228:47:10", + "nodeType": "YulExpressionStatement", + "src": "31228:47:10" + }, + { + "nativeSrc": "31284:116:10", + "nodeType": "YulAssignment", + "src": "31284:116:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "31386:6:10", + "nodeType": "YulIdentifier", + "src": "31386:6:10" + }, + { + "name": "tail", + "nativeSrc": "31395:4:10", + "nodeType": "YulIdentifier", + "src": "31395:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "31292:93:10", + "nodeType": "YulIdentifier", + "src": "31292:93:10" + }, + "nativeSrc": "31292:108:10", + "nodeType": "YulFunctionCall", + "src": "31292:108:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31284:4:10", + "nodeType": "YulIdentifier", + "src": "31284:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "31034:373:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31154:9:10", + "nodeType": "YulTypedName", + "src": "31154:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31166:6:10", + "nodeType": "YulTypedName", + "src": "31166:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31177:4:10", + "nodeType": "YulTypedName", + "src": "31177:4:10", + "type": "" + } + ], + "src": "31034:373:10" + }, + { + "body": { + "nativeSrc": "31466:32:10", + "nodeType": "YulBlock", + "src": "31466:32:10", + "statements": [ + { + "nativeSrc": "31476:16:10", + "nodeType": "YulAssignment", + "src": "31476:16:10", + "value": { + "name": "value", + "nativeSrc": "31487:5:10", + "nodeType": "YulIdentifier", + "src": "31487:5:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "31476:7:10", + "nodeType": "YulIdentifier", + "src": "31476:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "31413:85:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31448:5:10", + "nodeType": "YulTypedName", + "src": "31448:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "31458:7:10", + "nodeType": "YulTypedName", + "src": "31458:7:10", + "type": "" + } + ], + "src": "31413:85:10" + }, + { + "body": { + "nativeSrc": "31571:89:10", + "nodeType": "YulBlock", + "src": "31571:89:10", + "statements": [ + { + "nativeSrc": "31581:73:10", + "nodeType": "YulAssignment", + "src": "31581:73:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "31646:5:10", + "nodeType": "YulIdentifier", + "src": "31646:5:10" + } + ], + "functionName": { + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "31620:25:10", + "nodeType": "YulIdentifier", + "src": "31620:25:10" + }, + "nativeSrc": "31620:32:10", + "nodeType": "YulFunctionCall", + "src": "31620:32:10" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "31611:8:10", + "nodeType": "YulIdentifier", + "src": "31611:8:10" + }, + "nativeSrc": "31611:42:10", + "nodeType": "YulFunctionCall", + "src": "31611:42:10" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "31594:16:10", + "nodeType": "YulIdentifier", + "src": "31594:16:10" + }, + "nativeSrc": "31594:60:10", + "nodeType": "YulFunctionCall", + "src": "31594:60:10" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "31581:9:10", + "nodeType": "YulIdentifier", + "src": "31581:9:10" + } + ] + } + ] + }, + "name": "convert_t_rational_1_by_1_to_t_uint64", + "nativeSrc": "31504:156:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31551:5:10", + "nodeType": "YulTypedName", + "src": "31551:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "31561:9:10", + "nodeType": "YulTypedName", + "src": "31561:9:10", + "type": "" + } + ], + "src": "31504:156:10" + }, + { + "body": { + "nativeSrc": "31738:73:10", + "nodeType": "YulBlock", + "src": "31738:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31755:3:10", + "nodeType": "YulIdentifier", + "src": "31755:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "31798:5:10", + "nodeType": "YulIdentifier", + "src": "31798:5:10" + } + ], + "functionName": { + "name": "convert_t_rational_1_by_1_to_t_uint64", + "nativeSrc": "31760:37:10", + "nodeType": "YulIdentifier", + "src": "31760:37:10" + }, + "nativeSrc": "31760:44:10", + "nodeType": "YulFunctionCall", + "src": "31760:44:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31748:6:10", + "nodeType": "YulIdentifier", + "src": "31748:6:10" + }, + "nativeSrc": "31748:57:10", + "nodeType": "YulFunctionCall", + "src": "31748:57:10" + }, + "nativeSrc": "31748:57:10", + "nodeType": "YulExpressionStatement", + "src": "31748:57:10" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", + "nativeSrc": "31666:145:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31726:5:10", + "nodeType": "YulTypedName", + "src": "31726:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "31733:3:10", + "nodeType": "YulTypedName", + "src": "31733:3:10", + "type": "" + } + ], + "src": "31666:145:10" + }, + { + "body": { + "nativeSrc": "31922:131:10", + "nodeType": "YulBlock", + "src": "31922:131:10", + "statements": [ + { + "nativeSrc": "31932:26:10", + "nodeType": "YulAssignment", + "src": "31932:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31944:9:10", + "nodeType": "YulIdentifier", + "src": "31944:9:10" + }, + { + "kind": "number", + "nativeSrc": "31955:2:10", + "nodeType": "YulLiteral", + "src": "31955:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31940:3:10", + "nodeType": "YulIdentifier", + "src": "31940:3:10" + }, + "nativeSrc": "31940:18:10", + "nodeType": "YulFunctionCall", + "src": "31940:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31932:4:10", + "nodeType": "YulIdentifier", + "src": "31932:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "32019:6:10", + "nodeType": "YulIdentifier", + "src": "32019:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32032:9:10", + "nodeType": "YulIdentifier", + "src": "32032:9:10" + }, + { + "kind": "number", + "nativeSrc": "32043:1:10", + "nodeType": "YulLiteral", + "src": "32043:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32028:3:10", + "nodeType": "YulIdentifier", + "src": "32028:3:10" + }, + "nativeSrc": "32028:17:10", + "nodeType": "YulFunctionCall", + "src": "32028:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint64_fromStack", + "nativeSrc": "31968:50:10", + "nodeType": "YulIdentifier", + "src": "31968:50:10" + }, + "nativeSrc": "31968:78:10", + "nodeType": "YulFunctionCall", + "src": "31968:78:10" + }, + "nativeSrc": "31968:78:10", + "nodeType": "YulExpressionStatement", + "src": "31968:78:10" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "31817:236:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31894:9:10", + "nodeType": "YulTypedName", + "src": "31894:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31906:6:10", + "nodeType": "YulTypedName", + "src": "31906:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31917:4:10", + "nodeType": "YulTypedName", + "src": "31917:4:10", + "type": "" + } + ], + "src": "31817:236:10" + }, + { + "body": { + "nativeSrc": "32165:116:10", + "nodeType": "YulBlock", + "src": "32165:116:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "32187:6:10", + "nodeType": "YulIdentifier", + "src": "32187:6:10" + }, + { + "kind": "number", + "nativeSrc": "32195:1:10", + "nodeType": "YulLiteral", + "src": "32195:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32183:3:10", + "nodeType": "YulIdentifier", + "src": "32183:3:10" + }, + "nativeSrc": "32183:14:10", + "nodeType": "YulFunctionCall", + "src": "32183:14:10" + }, + { + "hexValue": "5369676e617475726556657269666965723a20496e76616c6964207369676174", + "kind": "string", + "nativeSrc": "32199:34:10", + "nodeType": "YulLiteral", + "src": "32199:34:10", + "type": "", + "value": "SignatureVerifier: Invalid sigat" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32176:6:10", + "nodeType": "YulIdentifier", + "src": "32176:6:10" + }, + "nativeSrc": "32176:58:10", + "nodeType": "YulFunctionCall", + "src": "32176:58:10" + }, + "nativeSrc": "32176:58:10", + "nodeType": "YulExpressionStatement", + "src": "32176:58:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "32255:6:10", + "nodeType": "YulIdentifier", + "src": "32255:6:10" + }, + { + "kind": "number", + "nativeSrc": "32263:2:10", + "nodeType": "YulLiteral", + "src": "32263:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32251:3:10", + "nodeType": "YulIdentifier", + "src": "32251:3:10" + }, + "nativeSrc": "32251:15:10", + "nodeType": "YulFunctionCall", + "src": "32251:15:10" + }, + { + "hexValue": "757265", + "kind": "string", + "nativeSrc": "32268:5:10", + "nodeType": "YulLiteral", + "src": "32268:5:10", + "type": "", + "value": "ure" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32244:6:10", + "nodeType": "YulIdentifier", + "src": "32244:6:10" + }, + "nativeSrc": "32244:30:10", + "nodeType": "YulFunctionCall", + "src": "32244:30:10" + }, + "nativeSrc": "32244:30:10", + "nodeType": "YulExpressionStatement", + "src": "32244:30:10" + } + ] + }, + "name": "store_literal_in_memory_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22", + "nativeSrc": "32059:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "32157:6:10", + "nodeType": "YulTypedName", + "src": "32157:6:10", + "type": "" + } + ], + "src": "32059:222:10" + }, + { + "body": { + "nativeSrc": "32433:220:10", + "nodeType": "YulBlock", + "src": "32433:220:10", + "statements": [ + { + "nativeSrc": "32443:74:10", + "nodeType": "YulAssignment", + "src": "32443:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "32509:3:10", + "nodeType": "YulIdentifier", + "src": "32509:3:10" + }, + { + "kind": "number", + "nativeSrc": "32514:2:10", + "nodeType": "YulLiteral", + "src": "32514:2:10", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "32450:58:10", + "nodeType": "YulIdentifier", + "src": "32450:58:10" + }, + "nativeSrc": "32450:67:10", + "nodeType": "YulFunctionCall", + "src": "32450:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "32443:3:10", + "nodeType": "YulIdentifier", + "src": "32443:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "32615:3:10", + "nodeType": "YulIdentifier", + "src": "32615:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22", + "nativeSrc": "32526:88:10", + "nodeType": "YulIdentifier", + "src": "32526:88:10" + }, + "nativeSrc": "32526:93:10", + "nodeType": "YulFunctionCall", + "src": "32526:93:10" + }, + "nativeSrc": "32526:93:10", + "nodeType": "YulExpressionStatement", + "src": "32526:93:10" + }, + { + "nativeSrc": "32628:19:10", + "nodeType": "YulAssignment", + "src": "32628:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "32639:3:10", + "nodeType": "YulIdentifier", + "src": "32639:3:10" + }, + { + "kind": "number", + "nativeSrc": "32644:2:10", + "nodeType": "YulLiteral", + "src": "32644:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32635:3:10", + "nodeType": "YulIdentifier", + "src": "32635:3:10" + }, + "nativeSrc": "32635:12:10", + "nodeType": "YulFunctionCall", + "src": "32635:12:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "32628:3:10", + "nodeType": "YulIdentifier", + "src": "32628:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22_to_t_string_memory_ptr_fromStack", + "nativeSrc": "32287:366:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "32421:3:10", + "nodeType": "YulTypedName", + "src": "32421:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "32429:3:10", + "nodeType": "YulTypedName", + "src": "32429:3:10", + "type": "" + } + ], + "src": "32287:366:10" + }, + { + "body": { + "nativeSrc": "32830:248:10", + "nodeType": "YulBlock", + "src": "32830:248:10", + "statements": [ + { + "nativeSrc": "32840:26:10", + "nodeType": "YulAssignment", + "src": "32840:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32852:9:10", + "nodeType": "YulIdentifier", + "src": "32852:9:10" + }, + { + "kind": "number", + "nativeSrc": "32863:2:10", + "nodeType": "YulLiteral", + "src": "32863:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32848:3:10", + "nodeType": "YulIdentifier", + "src": "32848:3:10" + }, + "nativeSrc": "32848:18:10", + "nodeType": "YulFunctionCall", + "src": "32848:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "32840:4:10", + "nodeType": "YulIdentifier", + "src": "32840:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "32887:9:10", + "nodeType": "YulIdentifier", + "src": "32887:9:10" + }, + { + "kind": "number", + "nativeSrc": "32898:1:10", + "nodeType": "YulLiteral", + "src": "32898:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32883:3:10", + "nodeType": "YulIdentifier", + "src": "32883:3:10" + }, + "nativeSrc": "32883:17:10", + "nodeType": "YulFunctionCall", + "src": "32883:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "32906:4:10", + "nodeType": "YulIdentifier", + "src": "32906:4:10" + }, + { + "name": "headStart", + "nativeSrc": "32912:9:10", + "nodeType": "YulIdentifier", + "src": "32912:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "32902:3:10", + "nodeType": "YulIdentifier", + "src": "32902:3:10" + }, + "nativeSrc": "32902:20:10", + "nodeType": "YulFunctionCall", + "src": "32902:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32876:6:10", + "nodeType": "YulIdentifier", + "src": "32876:6:10" + }, + "nativeSrc": "32876:47:10", + "nodeType": "YulFunctionCall", + "src": "32876:47:10" + }, + "nativeSrc": "32876:47:10", + "nodeType": "YulExpressionStatement", + "src": "32876:47:10" + }, + { + "nativeSrc": "32932:139:10", + "nodeType": "YulAssignment", + "src": "32932:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "33066:4:10", + "nodeType": "YulIdentifier", + "src": "33066:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22_to_t_string_memory_ptr_fromStack", + "nativeSrc": "32940:124:10", + "nodeType": "YulIdentifier", + "src": "32940:124:10" + }, + "nativeSrc": "32940:131:10", + "nodeType": "YulFunctionCall", + "src": "32940:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "32932:4:10", + "nodeType": "YulIdentifier", + "src": "32932:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "32659:419:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "32810:9:10", + "nodeType": "YulTypedName", + "src": "32810:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "32825:4:10", + "nodeType": "YulTypedName", + "src": "32825:4:10", + "type": "" + } + ], + "src": "32659:419:10" + }, + { + "body": { + "nativeSrc": "33198:34:10", + "nodeType": "YulBlock", + "src": "33198:34:10", + "statements": [ + { + "nativeSrc": "33208:18:10", + "nodeType": "YulAssignment", + "src": "33208:18:10", + "value": { + "name": "pos", + "nativeSrc": "33223:3:10", + "nodeType": "YulIdentifier", + "src": "33223:3:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "33208:11:10", + "nodeType": "YulIdentifier", + "src": "33208:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "33084:148:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "33170:3:10", + "nodeType": "YulTypedName", + "src": "33170:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "33175:6:10", + "nodeType": "YulTypedName", + "src": "33175:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "33186:11:10", + "nodeType": "YulTypedName", + "src": "33186:11:10", + "type": "" + } + ], + "src": "33084:148:10" + }, + { + "body": { + "nativeSrc": "33344:108:10", + "nodeType": "YulBlock", + "src": "33344:108:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "33366:6:10", + "nodeType": "YulIdentifier", + "src": "33366:6:10" + }, + { + "kind": "number", + "nativeSrc": "33374:1:10", + "nodeType": "YulLiteral", + "src": "33374:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33362:3:10", + "nodeType": "YulIdentifier", + "src": "33362:3:10" + }, + "nativeSrc": "33362:14:10", + "nodeType": "YulFunctionCall", + "src": "33362:14:10" + }, + { + "kind": "number", + "nativeSrc": "33378:66:10", + "nodeType": "YulLiteral", + "src": "33378:66:10", + "type": "", + "value": "0x1900000000000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33355:6:10", + "nodeType": "YulIdentifier", + "src": "33355:6:10" + }, + "nativeSrc": "33355:90:10", + "nodeType": "YulFunctionCall", + "src": "33355:90:10" + }, + "nativeSrc": "33355:90:10", + "nodeType": "YulExpressionStatement", + "src": "33355:90:10" + } + ] + }, + "name": "store_literal_in_memory_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "nativeSrc": "33238:214:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "33336:6:10", + "nodeType": "YulTypedName", + "src": "33336:6:10", + "type": "" + } + ], + "src": "33238:214:10" + }, + { + "body": { + "nativeSrc": "33622:236:10", + "nodeType": "YulBlock", + "src": "33622:236:10", + "statements": [ + { + "nativeSrc": "33632:91:10", + "nodeType": "YulAssignment", + "src": "33632:91:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "33716:3:10", + "nodeType": "YulIdentifier", + "src": "33716:3:10" + }, + { + "kind": "number", + "nativeSrc": "33721:1:10", + "nodeType": "YulLiteral", + "src": "33721:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "33639:76:10", + "nodeType": "YulIdentifier", + "src": "33639:76:10" + }, + "nativeSrc": "33639:84:10", + "nodeType": "YulFunctionCall", + "src": "33639:84:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "33632:3:10", + "nodeType": "YulIdentifier", + "src": "33632:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "33821:3:10", + "nodeType": "YulIdentifier", + "src": "33821:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "nativeSrc": "33732:88:10", + "nodeType": "YulIdentifier", + "src": "33732:88:10" + }, + "nativeSrc": "33732:93:10", + "nodeType": "YulFunctionCall", + "src": "33732:93:10" + }, + "nativeSrc": "33732:93:10", + "nodeType": "YulExpressionStatement", + "src": "33732:93:10" + }, + { + "nativeSrc": "33834:18:10", + "nodeType": "YulAssignment", + "src": "33834:18:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "33845:3:10", + "nodeType": "YulIdentifier", + "src": "33845:3:10" + }, + { + "kind": "number", + "nativeSrc": "33850:1:10", + "nodeType": "YulLiteral", + "src": "33850:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33841:3:10", + "nodeType": "YulIdentifier", + "src": "33841:3:10" + }, + "nativeSrc": "33841:11:10", + "nodeType": "YulFunctionCall", + "src": "33841:11:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "33834:3:10", + "nodeType": "YulIdentifier", + "src": "33834:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "33458:400:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "33610:3:10", + "nodeType": "YulTypedName", + "src": "33610:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "33618:3:10", + "nodeType": "YulTypedName", + "src": "33618:3:10", + "type": "" + } + ], + "src": "33458:400:10" + }, + { + "body": { + "nativeSrc": "33906:52:10", + "nodeType": "YulBlock", + "src": "33906:52:10", + "statements": [ + { + "nativeSrc": "33916:35:10", + "nodeType": "YulAssignment", + "src": "33916:35:10", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33941:2:10", + "nodeType": "YulLiteral", + "src": "33941:2:10", + "type": "", + "value": "96" + }, + { + "name": "value", + "nativeSrc": "33945:5:10", + "nodeType": "YulIdentifier", + "src": "33945:5:10" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "33937:3:10", + "nodeType": "YulIdentifier", + "src": "33937:3:10" + }, + "nativeSrc": "33937:14:10", + "nodeType": "YulFunctionCall", + "src": "33937:14:10" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "33916:8:10", + "nodeType": "YulIdentifier", + "src": "33916:8:10" + } + ] + } + ] + }, + "name": "shift_left_96", + "nativeSrc": "33864:94:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "33887:5:10", + "nodeType": "YulTypedName", + "src": "33887:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "33897:8:10", + "nodeType": "YulTypedName", + "src": "33897:8:10", + "type": "" + } + ], + "src": "33864:94:10" + }, + { + "body": { + "nativeSrc": "34011:47:10", + "nodeType": "YulBlock", + "src": "34011:47:10", + "statements": [ + { + "nativeSrc": "34021:31:10", + "nodeType": "YulAssignment", + "src": "34021:31:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "34046:5:10", + "nodeType": "YulIdentifier", + "src": "34046:5:10" + } + ], + "functionName": { + "name": "shift_left_96", + "nativeSrc": "34032:13:10", + "nodeType": "YulIdentifier", + "src": "34032:13:10" + }, + "nativeSrc": "34032:20:10", + "nodeType": "YulFunctionCall", + "src": "34032:20:10" + }, + "variableNames": [ + { + "name": "aligned", + "nativeSrc": "34021:7:10", + "nodeType": "YulIdentifier", + "src": "34021:7:10" + } + ] + } + ] + }, + "name": "leftAlign_t_uint160", + "nativeSrc": "33964:94:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "33993:5:10", + "nodeType": "YulTypedName", + "src": "33993:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nativeSrc": "34003:7:10", + "nodeType": "YulTypedName", + "src": "34003:7:10", + "type": "" + } + ], + "src": "33964:94:10" + }, + { + "body": { + "nativeSrc": "34111:53:10", + "nodeType": "YulBlock", + "src": "34111:53:10", + "statements": [ + { + "nativeSrc": "34121:37:10", + "nodeType": "YulAssignment", + "src": "34121:37:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "34152:5:10", + "nodeType": "YulIdentifier", + "src": "34152:5:10" + } + ], + "functionName": { + "name": "leftAlign_t_uint160", + "nativeSrc": "34132:19:10", + "nodeType": "YulIdentifier", + "src": "34132:19:10" + }, + "nativeSrc": "34132:26:10", + "nodeType": "YulFunctionCall", + "src": "34132:26:10" + }, + "variableNames": [ + { + "name": "aligned", + "nativeSrc": "34121:7:10", + "nodeType": "YulIdentifier", + "src": "34121:7:10" + } + ] + } + ] + }, + "name": "leftAlign_t_address", + "nativeSrc": "34064:100:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34093:5:10", + "nodeType": "YulTypedName", + "src": "34093:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nativeSrc": "34103:7:10", + "nodeType": "YulTypedName", + "src": "34103:7:10", + "type": "" + } + ], + "src": "34064:100:10" + }, + { + "body": { + "nativeSrc": "34253:74:10", + "nodeType": "YulBlock", + "src": "34253:74:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "34270:3:10", + "nodeType": "YulIdentifier", + "src": "34270:3:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "34313:5:10", + "nodeType": "YulIdentifier", + "src": "34313:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "34295:17:10", + "nodeType": "YulIdentifier", + "src": "34295:17:10" + }, + "nativeSrc": "34295:24:10", + "nodeType": "YulFunctionCall", + "src": "34295:24:10" + } + ], + "functionName": { + "name": "leftAlign_t_address", + "nativeSrc": "34275:19:10", + "nodeType": "YulIdentifier", + "src": "34275:19:10" + }, + "nativeSrc": "34275:45:10", + "nodeType": "YulFunctionCall", + "src": "34275:45:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34263:6:10", + "nodeType": "YulIdentifier", + "src": "34263:6:10" + }, + "nativeSrc": "34263:58:10", + "nodeType": "YulFunctionCall", + "src": "34263:58:10" + }, + "nativeSrc": "34263:58:10", + "nodeType": "YulExpressionStatement", + "src": "34263:58:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nativeSrc": "34170:157:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34241:5:10", + "nodeType": "YulTypedName", + "src": "34241:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "34248:3:10", + "nodeType": "YulTypedName", + "src": "34248:3:10", + "type": "" + } + ], + "src": "34170:157:10" + }, + { + "body": { + "nativeSrc": "34376:53:10", + "nodeType": "YulBlock", + "src": "34376:53:10", + "statements": [ + { + "nativeSrc": "34386:36:10", + "nodeType": "YulAssignment", + "src": "34386:36:10", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34411:3:10", + "nodeType": "YulLiteral", + "src": "34411:3:10", + "type": "", + "value": "192" + }, + { + "name": "value", + "nativeSrc": "34416:5:10", + "nodeType": "YulIdentifier", + "src": "34416:5:10" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34407:3:10", + "nodeType": "YulIdentifier", + "src": "34407:3:10" + }, + "nativeSrc": "34407:15:10", + "nodeType": "YulFunctionCall", + "src": "34407:15:10" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "34386:8:10", + "nodeType": "YulIdentifier", + "src": "34386:8:10" + } + ] + } + ] + }, + "name": "shift_left_192", + "nativeSrc": "34333:96:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34357:5:10", + "nodeType": "YulTypedName", + "src": "34357:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "34367:8:10", + "nodeType": "YulTypedName", + "src": "34367:8:10", + "type": "" + } + ], + "src": "34333:96:10" + }, + { + "body": { + "nativeSrc": "34481:48:10", + "nodeType": "YulBlock", + "src": "34481:48:10", + "statements": [ + { + "nativeSrc": "34491:32:10", + "nodeType": "YulAssignment", + "src": "34491:32:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "34517:5:10", + "nodeType": "YulIdentifier", + "src": "34517:5:10" + } + ], + "functionName": { + "name": "shift_left_192", + "nativeSrc": "34502:14:10", + "nodeType": "YulIdentifier", + "src": "34502:14:10" + }, + "nativeSrc": "34502:21:10", + "nodeType": "YulFunctionCall", + "src": "34502:21:10" + }, + "variableNames": [ + { + "name": "aligned", + "nativeSrc": "34491:7:10", + "nodeType": "YulIdentifier", + "src": "34491:7:10" + } + ] + } + ] + }, + "name": "leftAlign_t_uint64", + "nativeSrc": "34435:94:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34463:5:10", + "nodeType": "YulTypedName", + "src": "34463:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nativeSrc": "34473:7:10", + "nodeType": "YulTypedName", + "src": "34473:7:10", + "type": "" + } + ], + "src": "34435:94:10" + }, + { + "body": { + "nativeSrc": "34616:72:10", + "nodeType": "YulBlock", + "src": "34616:72:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "34633:3:10", + "nodeType": "YulIdentifier", + "src": "34633:3:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "34674:5:10", + "nodeType": "YulIdentifier", + "src": "34674:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nativeSrc": "34657:16:10", + "nodeType": "YulIdentifier", + "src": "34657:16:10" + }, + "nativeSrc": "34657:23:10", + "nodeType": "YulFunctionCall", + "src": "34657:23:10" + } + ], + "functionName": { + "name": "leftAlign_t_uint64", + "nativeSrc": "34638:18:10", + "nodeType": "YulIdentifier", + "src": "34638:18:10" + }, + "nativeSrc": "34638:43:10", + "nodeType": "YulFunctionCall", + "src": "34638:43:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34626:6:10", + "nodeType": "YulIdentifier", + "src": "34626:6:10" + }, + "nativeSrc": "34626:56:10", + "nodeType": "YulFunctionCall", + "src": "34626:56:10" + }, + "nativeSrc": "34626:56:10", + "nodeType": "YulExpressionStatement", + "src": "34626:56:10" + } + ] + }, + "name": "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack", + "nativeSrc": "34535:153:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34604:5:10", + "nodeType": "YulTypedName", + "src": "34604:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "34611:3:10", + "nodeType": "YulTypedName", + "src": "34611:3:10", + "type": "" + } + ], + "src": "34535:153:10" + }, + { + "body": { + "nativeSrc": "34741:32:10", + "nodeType": "YulBlock", + "src": "34741:32:10", + "statements": [ + { + "nativeSrc": "34751:16:10", + "nodeType": "YulAssignment", + "src": "34751:16:10", + "value": { + "name": "value", + "nativeSrc": "34762:5:10", + "nodeType": "YulIdentifier", + "src": "34762:5:10" + }, + "variableNames": [ + { + "name": "aligned", + "nativeSrc": "34751:7:10", + "nodeType": "YulIdentifier", + "src": "34751:7:10" + } + ] + } + ] + }, + "name": "leftAlign_t_bytes32", + "nativeSrc": "34694:79:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34723:5:10", + "nodeType": "YulTypedName", + "src": "34723:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "aligned", + "nativeSrc": "34733:7:10", + "nodeType": "YulTypedName", + "src": "34733:7:10", + "type": "" + } + ], + "src": "34694:79:10" + }, + { + "body": { + "nativeSrc": "34862:74:10", + "nodeType": "YulBlock", + "src": "34862:74:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "34879:3:10", + "nodeType": "YulIdentifier", + "src": "34879:3:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "34922:5:10", + "nodeType": "YulIdentifier", + "src": "34922:5:10" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "34904:17:10", + "nodeType": "YulIdentifier", + "src": "34904:17:10" + }, + "nativeSrc": "34904:24:10", + "nodeType": "YulFunctionCall", + "src": "34904:24:10" + } + ], + "functionName": { + "name": "leftAlign_t_bytes32", + "nativeSrc": "34884:19:10", + "nodeType": "YulIdentifier", + "src": "34884:19:10" + }, + "nativeSrc": "34884:45:10", + "nodeType": "YulFunctionCall", + "src": "34884:45:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34872:6:10", + "nodeType": "YulIdentifier", + "src": "34872:6:10" + }, + "nativeSrc": "34872:58:10", + "nodeType": "YulFunctionCall", + "src": "34872:58:10" + }, + "nativeSrc": "34872:58:10", + "nodeType": "YulExpressionStatement", + "src": "34872:58:10" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nativeSrc": "34779:157:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34850:5:10", + "nodeType": "YulTypedName", + "src": "34850:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "34857:3:10", + "nodeType": "YulTypedName", + "src": "34857:3:10", + "type": "" + } + ], + "src": "34779:157:10" + }, + { + "body": { + "nativeSrc": "35241:641:10", + "nodeType": "YulBlock", + "src": "35241:641:10", + "statements": [ + { + "nativeSrc": "35252:155:10", + "nodeType": "YulAssignment", + "src": "35252:155:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35403:3:10", + "nodeType": "YulIdentifier", + "src": "35403:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "35259:142:10", + "nodeType": "YulIdentifier", + "src": "35259:142:10" + }, + "nativeSrc": "35259:148:10", + "nodeType": "YulFunctionCall", + "src": "35259:148:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "35252:3:10", + "nodeType": "YulIdentifier", + "src": "35252:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "35479:6:10", + "nodeType": "YulIdentifier", + "src": "35479:6:10" + }, + { + "name": "pos", + "nativeSrc": "35488:3:10", + "nodeType": "YulIdentifier", + "src": "35488:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", + "nativeSrc": "35417:61:10", + "nodeType": "YulIdentifier", + "src": "35417:61:10" + }, + "nativeSrc": "35417:75:10", + "nodeType": "YulFunctionCall", + "src": "35417:75:10" + }, + "nativeSrc": "35417:75:10", + "nodeType": "YulExpressionStatement", + "src": "35417:75:10" + }, + { + "nativeSrc": "35501:19:10", + "nodeType": "YulAssignment", + "src": "35501:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35512:3:10", + "nodeType": "YulIdentifier", + "src": "35512:3:10" + }, + { + "kind": "number", + "nativeSrc": "35517:2:10", + "nodeType": "YulLiteral", + "src": "35517:2:10", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35508:3:10", + "nodeType": "YulIdentifier", + "src": "35508:3:10" + }, + "nativeSrc": "35508:12:10", + "nodeType": "YulFunctionCall", + "src": "35508:12:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "35501:3:10", + "nodeType": "YulIdentifier", + "src": "35501:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "35590:6:10", + "nodeType": "YulIdentifier", + "src": "35590:6:10" + }, + { + "name": "pos", + "nativeSrc": "35599:3:10", + "nodeType": "YulIdentifier", + "src": "35599:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack", + "nativeSrc": "35530:59:10", + "nodeType": "YulIdentifier", + "src": "35530:59:10" + }, + "nativeSrc": "35530:73:10", + "nodeType": "YulFunctionCall", + "src": "35530:73:10" + }, + "nativeSrc": "35530:73:10", + "nodeType": "YulExpressionStatement", + "src": "35530:73:10" + }, + { + "nativeSrc": "35612:18:10", + "nodeType": "YulAssignment", + "src": "35612:18:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35623:3:10", + "nodeType": "YulIdentifier", + "src": "35623:3:10" + }, + { + "kind": "number", + "nativeSrc": "35628:1:10", + "nodeType": "YulLiteral", + "src": "35628:1:10", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35619:3:10", + "nodeType": "YulIdentifier", + "src": "35619:3:10" + }, + "nativeSrc": "35619:11:10", + "nodeType": "YulFunctionCall", + "src": "35619:11:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "35612:3:10", + "nodeType": "YulIdentifier", + "src": "35612:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "35702:6:10", + "nodeType": "YulIdentifier", + "src": "35702:6:10" + }, + { + "name": "pos", + "nativeSrc": "35711:3:10", + "nodeType": "YulIdentifier", + "src": "35711:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nativeSrc": "35640:61:10", + "nodeType": "YulIdentifier", + "src": "35640:61:10" + }, + "nativeSrc": "35640:75:10", + "nodeType": "YulFunctionCall", + "src": "35640:75:10" + }, + "nativeSrc": "35640:75:10", + "nodeType": "YulExpressionStatement", + "src": "35640:75:10" + }, + { + "nativeSrc": "35724:19:10", + "nodeType": "YulAssignment", + "src": "35724:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35735:3:10", + "nodeType": "YulIdentifier", + "src": "35735:3:10" + }, + { + "kind": "number", + "nativeSrc": "35740:2:10", + "nodeType": "YulLiteral", + "src": "35740:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35731:3:10", + "nodeType": "YulIdentifier", + "src": "35731:3:10" + }, + "nativeSrc": "35731:12:10", + "nodeType": "YulFunctionCall", + "src": "35731:12:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "35724:3:10", + "nodeType": "YulIdentifier", + "src": "35724:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "35815:6:10", + "nodeType": "YulIdentifier", + "src": "35815:6:10" + }, + { + "name": "pos", + "nativeSrc": "35824:3:10", + "nodeType": "YulIdentifier", + "src": "35824:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", + "nativeSrc": "35753:61:10", + "nodeType": "YulIdentifier", + "src": "35753:61:10" + }, + "nativeSrc": "35753:75:10", + "nodeType": "YulFunctionCall", + "src": "35753:75:10" + }, + "nativeSrc": "35753:75:10", + "nodeType": "YulExpressionStatement", + "src": "35753:75:10" + }, + { + "nativeSrc": "35837:19:10", + "nodeType": "YulAssignment", + "src": "35837:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35848:3:10", + "nodeType": "YulIdentifier", + "src": "35848:3:10" + }, + { + "kind": "number", + "nativeSrc": "35853:2:10", + "nodeType": "YulLiteral", + "src": "35853:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35844:3:10", + "nodeType": "YulIdentifier", + "src": "35844:3:10" + }, + "nativeSrc": "35844:12:10", + "nodeType": "YulFunctionCall", + "src": "35844:12:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "35837:3:10", + "nodeType": "YulIdentifier", + "src": "35837:3:10" + } + ] + }, + { + "nativeSrc": "35866:10:10", + "nodeType": "YulAssignment", + "src": "35866:10:10", + "value": { + "name": "pos", + "nativeSrc": "35873:3:10", + "nodeType": "YulIdentifier", + "src": "35873:3:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "35866:3:10", + "nodeType": "YulIdentifier", + "src": "35866:3:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_t_address_t_uint64_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_address_t_uint64_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "34942:940:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "35196:3:10", + "nodeType": "YulTypedName", + "src": "35196:3:10", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "35202:6:10", + "nodeType": "YulTypedName", + "src": "35202:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "35210:6:10", + "nodeType": "YulTypedName", + "src": "35210:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "35218:6:10", + "nodeType": "YulTypedName", + "src": "35218:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "35226:6:10", + "nodeType": "YulTypedName", + "src": "35226:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "35237:3:10", + "nodeType": "YulTypedName", + "src": "35237:3:10", + "type": "" + } + ], + "src": "34942:940:10" + }, + { + "body": { + "nativeSrc": "36005:856:10", + "nodeType": "YulBlock", + "src": "36005:856:10", + "statements": [ + { + "body": { + "nativeSrc": "36051:83:10", + "nodeType": "YulBlock", + "src": "36051:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "36053:77:10", + "nodeType": "YulIdentifier", + "src": "36053:77:10" + }, + "nativeSrc": "36053:79:10", + "nodeType": "YulFunctionCall", + "src": "36053:79:10" + }, + "nativeSrc": "36053:79:10", + "nodeType": "YulExpressionStatement", + "src": "36053:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "36026:7:10", + "nodeType": "YulIdentifier", + "src": "36026:7:10" + }, + { + "name": "headStart", + "nativeSrc": "36035:9:10", + "nodeType": "YulIdentifier", + "src": "36035:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36022:3:10", + "nodeType": "YulIdentifier", + "src": "36022:3:10" + }, + "nativeSrc": "36022:23:10", + "nodeType": "YulFunctionCall", + "src": "36022:23:10" + }, + { + "kind": "number", + "nativeSrc": "36047:2:10", + "nodeType": "YulLiteral", + "src": "36047:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "36018:3:10", + "nodeType": "YulIdentifier", + "src": "36018:3:10" + }, + "nativeSrc": "36018:32:10", + "nodeType": "YulFunctionCall", + "src": "36018:32:10" + }, + "nativeSrc": "36015:119:10", + "nodeType": "YulIf", + "src": "36015:119:10" + }, + { + "nativeSrc": "36144:286:10", + "nodeType": "YulBlock", + "src": "36144:286:10", + "statements": [ + { + "nativeSrc": "36159:45:10", + "nodeType": "YulVariableDeclaration", + "src": "36159:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36190:9:10", + "nodeType": "YulIdentifier", + "src": "36190:9:10" + }, + { + "kind": "number", + "nativeSrc": "36201:1:10", + "nodeType": "YulLiteral", + "src": "36201:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36186:3:10", + "nodeType": "YulIdentifier", + "src": "36186:3:10" + }, + "nativeSrc": "36186:17:10", + "nodeType": "YulFunctionCall", + "src": "36186:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "36173:12:10", + "nodeType": "YulIdentifier", + "src": "36173:12:10" + }, + "nativeSrc": "36173:31:10", + "nodeType": "YulFunctionCall", + "src": "36173:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "36163:6:10", + "nodeType": "YulTypedName", + "src": "36163:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "36251:83:10", + "nodeType": "YulBlock", + "src": "36251:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "36253:77:10", + "nodeType": "YulIdentifier", + "src": "36253:77:10" + }, + "nativeSrc": "36253:79:10", + "nodeType": "YulFunctionCall", + "src": "36253:79:10" + }, + "nativeSrc": "36253:79:10", + "nodeType": "YulExpressionStatement", + "src": "36253:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "36223:6:10", + "nodeType": "YulIdentifier", + "src": "36223:6:10" + }, + { + "kind": "number", + "nativeSrc": "36231:18:10", + "nodeType": "YulLiteral", + "src": "36231:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "36220:2:10", + "nodeType": "YulIdentifier", + "src": "36220:2:10" + }, + "nativeSrc": "36220:30:10", + "nodeType": "YulFunctionCall", + "src": "36220:30:10" + }, + "nativeSrc": "36217:117:10", + "nodeType": "YulIf", + "src": "36217:117:10" + }, + { + "nativeSrc": "36348:72:10", + "nodeType": "YulAssignment", + "src": "36348:72:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36392:9:10", + "nodeType": "YulIdentifier", + "src": "36392:9:10" + }, + { + "name": "offset", + "nativeSrc": "36403:6:10", + "nodeType": "YulIdentifier", + "src": "36403:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36388:3:10", + "nodeType": "YulIdentifier", + "src": "36388:3:10" + }, + "nativeSrc": "36388:22:10", + "nodeType": "YulFunctionCall", + "src": "36388:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "36412:7:10", + "nodeType": "YulIdentifier", + "src": "36412:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "36358:29:10", + "nodeType": "YulIdentifier", + "src": "36358:29:10" + }, + "nativeSrc": "36358:62:10", + "nodeType": "YulFunctionCall", + "src": "36358:62:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "36348:6:10", + "nodeType": "YulIdentifier", + "src": "36348:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "36440:117:10", + "nodeType": "YulBlock", + "src": "36440:117:10", + "statements": [ + { + "nativeSrc": "36455:16:10", + "nodeType": "YulVariableDeclaration", + "src": "36455:16:10", + "value": { + "kind": "number", + "nativeSrc": "36469:2:10", + "nodeType": "YulLiteral", + "src": "36469:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "36459:6:10", + "nodeType": "YulTypedName", + "src": "36459:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "36485:62:10", + "nodeType": "YulAssignment", + "src": "36485:62:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36519:9:10", + "nodeType": "YulIdentifier", + "src": "36519:9:10" + }, + { + "name": "offset", + "nativeSrc": "36530:6:10", + "nodeType": "YulIdentifier", + "src": "36530:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36515:3:10", + "nodeType": "YulIdentifier", + "src": "36515:3:10" + }, + "nativeSrc": "36515:22:10", + "nodeType": "YulFunctionCall", + "src": "36515:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "36539:7:10", + "nodeType": "YulIdentifier", + "src": "36539:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nativeSrc": "36495:19:10", + "nodeType": "YulIdentifier", + "src": "36495:19:10" + }, + "nativeSrc": "36495:52:10", + "nodeType": "YulFunctionCall", + "src": "36495:52:10" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "36485:6:10", + "nodeType": "YulIdentifier", + "src": "36485:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "36567:287:10", + "nodeType": "YulBlock", + "src": "36567:287:10", + "statements": [ + { + "nativeSrc": "36582:46:10", + "nodeType": "YulVariableDeclaration", + "src": "36582:46:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36613:9:10", + "nodeType": "YulIdentifier", + "src": "36613:9:10" + }, + { + "kind": "number", + "nativeSrc": "36624:2:10", + "nodeType": "YulLiteral", + "src": "36624:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36609:3:10", + "nodeType": "YulIdentifier", + "src": "36609:3:10" + }, + "nativeSrc": "36609:18:10", + "nodeType": "YulFunctionCall", + "src": "36609:18:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "36596:12:10", + "nodeType": "YulIdentifier", + "src": "36596:12:10" + }, + "nativeSrc": "36596:32:10", + "nodeType": "YulFunctionCall", + "src": "36596:32:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "36586:6:10", + "nodeType": "YulTypedName", + "src": "36586:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "36675:83:10", + "nodeType": "YulBlock", + "src": "36675:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "36677:77:10", + "nodeType": "YulIdentifier", + "src": "36677:77:10" + }, + "nativeSrc": "36677:79:10", + "nodeType": "YulFunctionCall", + "src": "36677:79:10" + }, + "nativeSrc": "36677:79:10", + "nodeType": "YulExpressionStatement", + "src": "36677:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "36647:6:10", + "nodeType": "YulIdentifier", + "src": "36647:6:10" + }, + { + "kind": "number", + "nativeSrc": "36655:18:10", + "nodeType": "YulLiteral", + "src": "36655:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "36644:2:10", + "nodeType": "YulIdentifier", + "src": "36644:2:10" + }, + "nativeSrc": "36644:30:10", + "nodeType": "YulFunctionCall", + "src": "36644:30:10" + }, + "nativeSrc": "36641:117:10", + "nodeType": "YulIf", + "src": "36641:117:10" + }, + { + "nativeSrc": "36772:72:10", + "nodeType": "YulAssignment", + "src": "36772:72:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36816:9:10", + "nodeType": "YulIdentifier", + "src": "36816:9:10" + }, + { + "name": "offset", + "nativeSrc": "36827:6:10", + "nodeType": "YulIdentifier", + "src": "36827:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36812:3:10", + "nodeType": "YulIdentifier", + "src": "36812:3:10" + }, + "nativeSrc": "36812:22:10", + "nodeType": "YulFunctionCall", + "src": "36812:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "36836:7:10", + "nodeType": "YulIdentifier", + "src": "36836:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "36782:29:10", + "nodeType": "YulIdentifier", + "src": "36782:29:10" + }, + "nativeSrc": "36782:62:10", + "nodeType": "YulFunctionCall", + "src": "36782:62:10" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "36772:6:10", + "nodeType": "YulIdentifier", + "src": "36772:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_memory_ptrt_uint64t_bytes_memory_ptr", + "nativeSrc": "35888:973:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "35959:9:10", + "nodeType": "YulTypedName", + "src": "35959:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "35970:7:10", + "nodeType": "YulTypedName", + "src": "35970:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "35982:6:10", + "nodeType": "YulTypedName", + "src": "35982:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "35990:6:10", + "nodeType": "YulTypedName", + "src": "35990:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "35998:6:10", + "nodeType": "YulTypedName", + "src": "35998:6:10", + "type": "" + } + ], + "src": "35888:973:10" + }, + { + "body": { + "nativeSrc": "36920:51:10", + "nodeType": "YulBlock", + "src": "36920:51:10", + "statements": [ + { + "nativeSrc": "36930:35:10", + "nodeType": "YulAssignment", + "src": "36930:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "36959:5:10", + "nodeType": "YulIdentifier", + "src": "36959:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "36941:17:10", + "nodeType": "YulIdentifier", + "src": "36941:17:10" + }, + "nativeSrc": "36941:24:10", + "nodeType": "YulFunctionCall", + "src": "36941:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "36930:7:10", + "nodeType": "YulIdentifier", + "src": "36930:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address_payable", + "nativeSrc": "36867:104:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "36902:5:10", + "nodeType": "YulTypedName", + "src": "36902:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "36912:7:10", + "nodeType": "YulTypedName", + "src": "36912:7:10", + "type": "" + } + ], + "src": "36867:104:10" + }, + { + "body": { + "nativeSrc": "37028:87:10", + "nodeType": "YulBlock", + "src": "37028:87:10", + "statements": [ + { + "body": { + "nativeSrc": "37093:16:10", + "nodeType": "YulBlock", + "src": "37093:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "37102:1:10", + "nodeType": "YulLiteral", + "src": "37102:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "37105:1:10", + "nodeType": "YulLiteral", + "src": "37105:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "37095:6:10", + "nodeType": "YulIdentifier", + "src": "37095:6:10" + }, + "nativeSrc": "37095:12:10", + "nodeType": "YulFunctionCall", + "src": "37095:12:10" + }, + "nativeSrc": "37095:12:10", + "nodeType": "YulExpressionStatement", + "src": "37095:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "37051:5:10", + "nodeType": "YulIdentifier", + "src": "37051:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "37084:5:10", + "nodeType": "YulIdentifier", + "src": "37084:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address_payable", + "nativeSrc": "37058:25:10", + "nodeType": "YulIdentifier", + "src": "37058:25:10" + }, + "nativeSrc": "37058:32:10", + "nodeType": "YulFunctionCall", + "src": "37058:32:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "37048:2:10", + "nodeType": "YulIdentifier", + "src": "37048:2:10" + }, + "nativeSrc": "37048:43:10", + "nodeType": "YulFunctionCall", + "src": "37048:43:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "37041:6:10", + "nodeType": "YulIdentifier", + "src": "37041:6:10" + }, + "nativeSrc": "37041:51:10", + "nodeType": "YulFunctionCall", + "src": "37041:51:10" + }, + "nativeSrc": "37038:71:10", + "nodeType": "YulIf", + "src": "37038:71:10" + } + ] + }, + "name": "validator_revert_t_address_payable", + "nativeSrc": "36977:138:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "37021:5:10", + "nodeType": "YulTypedName", + "src": "37021:5:10", + "type": "" + } + ], + "src": "36977:138:10" + }, + { + "body": { + "nativeSrc": "37181:95:10", + "nodeType": "YulBlock", + "src": "37181:95:10", + "statements": [ + { + "nativeSrc": "37191:29:10", + "nodeType": "YulAssignment", + "src": "37191:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "37213:6:10", + "nodeType": "YulIdentifier", + "src": "37213:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "37200:12:10", + "nodeType": "YulIdentifier", + "src": "37200:12:10" + }, + "nativeSrc": "37200:20:10", + "nodeType": "YulFunctionCall", + "src": "37200:20:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "37191:5:10", + "nodeType": "YulIdentifier", + "src": "37191:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "37264:5:10", + "nodeType": "YulIdentifier", + "src": "37264:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_address_payable", + "nativeSrc": "37229:34:10", + "nodeType": "YulIdentifier", + "src": "37229:34:10" + }, + "nativeSrc": "37229:41:10", + "nodeType": "YulFunctionCall", + "src": "37229:41:10" + }, + "nativeSrc": "37229:41:10", + "nodeType": "YulExpressionStatement", + "src": "37229:41:10" + } + ] + }, + "name": "abi_decode_t_address_payable", + "nativeSrc": "37121:155:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "37159:6:10", + "nodeType": "YulTypedName", + "src": "37159:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "37167:3:10", + "nodeType": "YulTypedName", + "src": "37167:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "37175:5:10", + "nodeType": "YulTypedName", + "src": "37175:5:10", + "type": "" + } + ], + "src": "37121:155:10" + }, + { + "body": { + "nativeSrc": "37382:568:10", + "nodeType": "YulBlock", + "src": "37382:568:10", + "statements": [ + { + "body": { + "nativeSrc": "37428:83:10", + "nodeType": "YulBlock", + "src": "37428:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "37430:77:10", + "nodeType": "YulIdentifier", + "src": "37430:77:10" + }, + "nativeSrc": "37430:79:10", + "nodeType": "YulFunctionCall", + "src": "37430:79:10" + }, + "nativeSrc": "37430:79:10", + "nodeType": "YulExpressionStatement", + "src": "37430:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "37403:7:10", + "nodeType": "YulIdentifier", + "src": "37403:7:10" + }, + { + "name": "headStart", + "nativeSrc": "37412:9:10", + "nodeType": "YulIdentifier", + "src": "37412:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37399:3:10", + "nodeType": "YulIdentifier", + "src": "37399:3:10" + }, + "nativeSrc": "37399:23:10", + "nodeType": "YulFunctionCall", + "src": "37399:23:10" + }, + { + "kind": "number", + "nativeSrc": "37424:2:10", + "nodeType": "YulLiteral", + "src": "37424:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "37395:3:10", + "nodeType": "YulIdentifier", + "src": "37395:3:10" + }, + "nativeSrc": "37395:32:10", + "nodeType": "YulFunctionCall", + "src": "37395:32:10" + }, + "nativeSrc": "37392:119:10", + "nodeType": "YulIf", + "src": "37392:119:10" + }, + { + "nativeSrc": "37521:286:10", + "nodeType": "YulBlock", + "src": "37521:286:10", + "statements": [ + { + "nativeSrc": "37536:45:10", + "nodeType": "YulVariableDeclaration", + "src": "37536:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37567:9:10", + "nodeType": "YulIdentifier", + "src": "37567:9:10" + }, + { + "kind": "number", + "nativeSrc": "37578:1:10", + "nodeType": "YulLiteral", + "src": "37578:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37563:3:10", + "nodeType": "YulIdentifier", + "src": "37563:3:10" + }, + "nativeSrc": "37563:17:10", + "nodeType": "YulFunctionCall", + "src": "37563:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "37550:12:10", + "nodeType": "YulIdentifier", + "src": "37550:12:10" + }, + "nativeSrc": "37550:31:10", + "nodeType": "YulFunctionCall", + "src": "37550:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "37540:6:10", + "nodeType": "YulTypedName", + "src": "37540:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "37628:83:10", + "nodeType": "YulBlock", + "src": "37628:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "37630:77:10", + "nodeType": "YulIdentifier", + "src": "37630:77:10" + }, + "nativeSrc": "37630:79:10", + "nodeType": "YulFunctionCall", + "src": "37630:79:10" + }, + "nativeSrc": "37630:79:10", + "nodeType": "YulExpressionStatement", + "src": "37630:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "37600:6:10", + "nodeType": "YulIdentifier", + "src": "37600:6:10" + }, + { + "kind": "number", + "nativeSrc": "37608:18:10", + "nodeType": "YulLiteral", + "src": "37608:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "37597:2:10", + "nodeType": "YulIdentifier", + "src": "37597:2:10" + }, + "nativeSrc": "37597:30:10", + "nodeType": "YulFunctionCall", + "src": "37597:30:10" + }, + "nativeSrc": "37594:117:10", + "nodeType": "YulIf", + "src": "37594:117:10" + }, + { + "nativeSrc": "37725:72:10", + "nodeType": "YulAssignment", + "src": "37725:72:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37769:9:10", + "nodeType": "YulIdentifier", + "src": "37769:9:10" + }, + { + "name": "offset", + "nativeSrc": "37780:6:10", + "nodeType": "YulIdentifier", + "src": "37780:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37765:3:10", + "nodeType": "YulIdentifier", + "src": "37765:3:10" + }, + "nativeSrc": "37765:22:10", + "nodeType": "YulFunctionCall", + "src": "37765:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "37789:7:10", + "nodeType": "YulIdentifier", + "src": "37789:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "37735:29:10", + "nodeType": "YulIdentifier", + "src": "37735:29:10" + }, + "nativeSrc": "37735:62:10", + "nodeType": "YulFunctionCall", + "src": "37735:62:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "37725:6:10", + "nodeType": "YulIdentifier", + "src": "37725:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "37817:126:10", + "nodeType": "YulBlock", + "src": "37817:126:10", + "statements": [ + { + "nativeSrc": "37832:16:10", + "nodeType": "YulVariableDeclaration", + "src": "37832:16:10", + "value": { + "kind": "number", + "nativeSrc": "37846:2:10", + "nodeType": "YulLiteral", + "src": "37846:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "37836:6:10", + "nodeType": "YulTypedName", + "src": "37836:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "37862:71:10", + "nodeType": "YulAssignment", + "src": "37862:71:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37905:9:10", + "nodeType": "YulIdentifier", + "src": "37905:9:10" + }, + { + "name": "offset", + "nativeSrc": "37916:6:10", + "nodeType": "YulIdentifier", + "src": "37916:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37901:3:10", + "nodeType": "YulIdentifier", + "src": "37901:3:10" + }, + "nativeSrc": "37901:22:10", + "nodeType": "YulFunctionCall", + "src": "37901:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "37925:7:10", + "nodeType": "YulIdentifier", + "src": "37925:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address_payable", + "nativeSrc": "37872:28:10", + "nodeType": "YulIdentifier", + "src": "37872:28:10" + }, + "nativeSrc": "37872:61:10", + "nodeType": "YulFunctionCall", + "src": "37872:61:10" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "37862:6:10", + "nodeType": "YulIdentifier", + "src": "37862:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_memory_ptrt_address_payable", + "nativeSrc": "37282:668:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37344:9:10", + "nodeType": "YulTypedName", + "src": "37344:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "37355:7:10", + "nodeType": "YulTypedName", + "src": "37355:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "37367:6:10", + "nodeType": "YulTypedName", + "src": "37367:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "37375:6:10", + "nodeType": "YulTypedName", + "src": "37375:6:10", + "type": "" + } + ], + "src": "37282:668:10" + }, + { + "body": { + "nativeSrc": "38062:117:10", + "nodeType": "YulBlock", + "src": "38062:117:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "38084:6:10", + "nodeType": "YulIdentifier", + "src": "38084:6:10" + }, + { + "kind": "number", + "nativeSrc": "38092:1:10", + "nodeType": "YulLiteral", + "src": "38092:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38080:3:10", + "nodeType": "YulIdentifier", + "src": "38080:3:10" + }, + "nativeSrc": "38080:14:10", + "nodeType": "YulFunctionCall", + "src": "38080:14:10" + }, + { + "hexValue": "5369676e617475726556657269666965723a205369676e617475726520657870", + "kind": "string", + "nativeSrc": "38096:34:10", + "nodeType": "YulLiteral", + "src": "38096:34:10", + "type": "", + "value": "SignatureVerifier: Signature exp" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38073:6:10", + "nodeType": "YulIdentifier", + "src": "38073:6:10" + }, + "nativeSrc": "38073:58:10", + "nodeType": "YulFunctionCall", + "src": "38073:58:10" + }, + "nativeSrc": "38073:58:10", + "nodeType": "YulExpressionStatement", + "src": "38073:58:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "38152:6:10", + "nodeType": "YulIdentifier", + "src": "38152:6:10" + }, + { + "kind": "number", + "nativeSrc": "38160:2:10", + "nodeType": "YulLiteral", + "src": "38160:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38148:3:10", + "nodeType": "YulIdentifier", + "src": "38148:3:10" + }, + "nativeSrc": "38148:15:10", + "nodeType": "YulFunctionCall", + "src": "38148:15:10" + }, + { + "hexValue": "69726564", + "kind": "string", + "nativeSrc": "38165:6:10", + "nodeType": "YulLiteral", + "src": "38165:6:10", + "type": "", + "value": "ired" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38141:6:10", + "nodeType": "YulIdentifier", + "src": "38141:6:10" + }, + "nativeSrc": "38141:31:10", + "nodeType": "YulFunctionCall", + "src": "38141:31:10" + }, + "nativeSrc": "38141:31:10", + "nodeType": "YulExpressionStatement", + "src": "38141:31:10" + } + ] + }, + "name": "store_literal_in_memory_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a", + "nativeSrc": "37956:223:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "38054:6:10", + "nodeType": "YulTypedName", + "src": "38054:6:10", + "type": "" + } + ], + "src": "37956:223:10" + }, + { + "body": { + "nativeSrc": "38331:220:10", + "nodeType": "YulBlock", + "src": "38331:220:10", + "statements": [ + { + "nativeSrc": "38341:74:10", + "nodeType": "YulAssignment", + "src": "38341:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38407:3:10", + "nodeType": "YulIdentifier", + "src": "38407:3:10" + }, + { + "kind": "number", + "nativeSrc": "38412:2:10", + "nodeType": "YulLiteral", + "src": "38412:2:10", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "38348:58:10", + "nodeType": "YulIdentifier", + "src": "38348:58:10" + }, + "nativeSrc": "38348:67:10", + "nodeType": "YulFunctionCall", + "src": "38348:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "38341:3:10", + "nodeType": "YulIdentifier", + "src": "38341:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38513:3:10", + "nodeType": "YulIdentifier", + "src": "38513:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a", + "nativeSrc": "38424:88:10", + "nodeType": "YulIdentifier", + "src": "38424:88:10" + }, + "nativeSrc": "38424:93:10", + "nodeType": "YulFunctionCall", + "src": "38424:93:10" + }, + "nativeSrc": "38424:93:10", + "nodeType": "YulExpressionStatement", + "src": "38424:93:10" + }, + { + "nativeSrc": "38526:19:10", + "nodeType": "YulAssignment", + "src": "38526:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "38537:3:10", + "nodeType": "YulIdentifier", + "src": "38537:3:10" + }, + { + "kind": "number", + "nativeSrc": "38542:2:10", + "nodeType": "YulLiteral", + "src": "38542:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38533:3:10", + "nodeType": "YulIdentifier", + "src": "38533:3:10" + }, + "nativeSrc": "38533:12:10", + "nodeType": "YulFunctionCall", + "src": "38533:12:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "38526:3:10", + "nodeType": "YulIdentifier", + "src": "38526:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a_to_t_string_memory_ptr_fromStack", + "nativeSrc": "38185:366:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "38319:3:10", + "nodeType": "YulTypedName", + "src": "38319:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "38327:3:10", + "nodeType": "YulTypedName", + "src": "38327:3:10", + "type": "" + } + ], + "src": "38185:366:10" + }, + { + "body": { + "nativeSrc": "38728:248:10", + "nodeType": "YulBlock", + "src": "38728:248:10", + "statements": [ + { + "nativeSrc": "38738:26:10", + "nodeType": "YulAssignment", + "src": "38738:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38750:9:10", + "nodeType": "YulIdentifier", + "src": "38750:9:10" + }, + { + "kind": "number", + "nativeSrc": "38761:2:10", + "nodeType": "YulLiteral", + "src": "38761:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38746:3:10", + "nodeType": "YulIdentifier", + "src": "38746:3:10" + }, + "nativeSrc": "38746:18:10", + "nodeType": "YulFunctionCall", + "src": "38746:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38738:4:10", + "nodeType": "YulIdentifier", + "src": "38738:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38785:9:10", + "nodeType": "YulIdentifier", + "src": "38785:9:10" + }, + { + "kind": "number", + "nativeSrc": "38796:1:10", + "nodeType": "YulLiteral", + "src": "38796:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38781:3:10", + "nodeType": "YulIdentifier", + "src": "38781:3:10" + }, + "nativeSrc": "38781:17:10", + "nodeType": "YulFunctionCall", + "src": "38781:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "38804:4:10", + "nodeType": "YulIdentifier", + "src": "38804:4:10" + }, + { + "name": "headStart", + "nativeSrc": "38810:9:10", + "nodeType": "YulIdentifier", + "src": "38810:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38800:3:10", + "nodeType": "YulIdentifier", + "src": "38800:3:10" + }, + "nativeSrc": "38800:20:10", + "nodeType": "YulFunctionCall", + "src": "38800:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38774:6:10", + "nodeType": "YulIdentifier", + "src": "38774:6:10" + }, + "nativeSrc": "38774:47:10", + "nodeType": "YulFunctionCall", + "src": "38774:47:10" + }, + "nativeSrc": "38774:47:10", + "nodeType": "YulExpressionStatement", + "src": "38774:47:10" + }, + { + "nativeSrc": "38830:139:10", + "nodeType": "YulAssignment", + "src": "38830:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "38964:4:10", + "nodeType": "YulIdentifier", + "src": "38964:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a_to_t_string_memory_ptr_fromStack", + "nativeSrc": "38838:124:10", + "nodeType": "YulIdentifier", + "src": "38838:124:10" + }, + "nativeSrc": "38838:131:10", + "nodeType": "YulFunctionCall", + "src": "38838:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38830:4:10", + "nodeType": "YulIdentifier", + "src": "38830:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "38557:419:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38708:9:10", + "nodeType": "YulTypedName", + "src": "38708:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38723:4:10", + "nodeType": "YulTypedName", + "src": "38723:4:10", + "type": "" + } + ], + "src": "38557:419:10" + }, + { + "body": { + "nativeSrc": "39010:152:10", + "nodeType": "YulBlock", + "src": "39010:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39027:1:10", + "nodeType": "YulLiteral", + "src": "39027:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "39030:77:10", + "nodeType": "YulLiteral", + "src": "39030:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39020:6:10", + "nodeType": "YulIdentifier", + "src": "39020:6:10" + }, + "nativeSrc": "39020:88:10", + "nodeType": "YulFunctionCall", + "src": "39020:88:10" + }, + "nativeSrc": "39020:88:10", + "nodeType": "YulExpressionStatement", + "src": "39020:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39124:1:10", + "nodeType": "YulLiteral", + "src": "39124:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "39127:4:10", + "nodeType": "YulLiteral", + "src": "39127:4:10", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39117:6:10", + "nodeType": "YulIdentifier", + "src": "39117:6:10" + }, + "nativeSrc": "39117:15:10", + "nodeType": "YulFunctionCall", + "src": "39117:15:10" + }, + "nativeSrc": "39117:15:10", + "nodeType": "YulExpressionStatement", + "src": "39117:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39148:1:10", + "nodeType": "YulLiteral", + "src": "39148:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "39151:4:10", + "nodeType": "YulLiteral", + "src": "39151:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "39141:6:10", + "nodeType": "YulIdentifier", + "src": "39141:6:10" + }, + "nativeSrc": "39141:15:10", + "nodeType": "YulFunctionCall", + "src": "39141:15:10" + }, + "nativeSrc": "39141:15:10", + "nodeType": "YulExpressionStatement", + "src": "39141:15:10" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "38982:180:10", + "nodeType": "YulFunctionDefinition", + "src": "38982:180:10" + }, + { + "body": { + "nativeSrc": "39233:53:10", + "nodeType": "YulBlock", + "src": "39233:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39250:3:10", + "nodeType": "YulIdentifier", + "src": "39250:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "39273:5:10", + "nodeType": "YulIdentifier", + "src": "39273:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "39255:17:10", + "nodeType": "YulIdentifier", + "src": "39255:17:10" + }, + "nativeSrc": "39255:24:10", + "nodeType": "YulFunctionCall", + "src": "39255:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39243:6:10", + "nodeType": "YulIdentifier", + "src": "39243:6:10" + }, + "nativeSrc": "39243:37:10", + "nodeType": "YulFunctionCall", + "src": "39243:37:10" + }, + "nativeSrc": "39243:37:10", + "nodeType": "YulExpressionStatement", + "src": "39243:37:10" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "39168:118:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "39221:5:10", + "nodeType": "YulTypedName", + "src": "39221:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "39228:3:10", + "nodeType": "YulTypedName", + "src": "39228:3:10", + "type": "" + } + ], + "src": "39168:118:10" + }, + { + "body": { + "nativeSrc": "39390:124:10", + "nodeType": "YulBlock", + "src": "39390:124:10", + "statements": [ + { + "nativeSrc": "39400:26:10", + "nodeType": "YulAssignment", + "src": "39400:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39412:9:10", + "nodeType": "YulIdentifier", + "src": "39412:9:10" + }, + { + "kind": "number", + "nativeSrc": "39423:2:10", + "nodeType": "YulLiteral", + "src": "39423:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39408:3:10", + "nodeType": "YulIdentifier", + "src": "39408:3:10" + }, + "nativeSrc": "39408:18:10", + "nodeType": "YulFunctionCall", + "src": "39408:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39400:4:10", + "nodeType": "YulIdentifier", + "src": "39400:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39480:6:10", + "nodeType": "YulIdentifier", + "src": "39480:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39493:9:10", + "nodeType": "YulIdentifier", + "src": "39493:9:10" + }, + { + "kind": "number", + "nativeSrc": "39504:1:10", + "nodeType": "YulLiteral", + "src": "39504:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39489:3:10", + "nodeType": "YulIdentifier", + "src": "39489:3:10" + }, + "nativeSrc": "39489:17:10", + "nodeType": "YulFunctionCall", + "src": "39489:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "39436:43:10", + "nodeType": "YulIdentifier", + "src": "39436:43:10" + }, + "nativeSrc": "39436:71:10", + "nodeType": "YulFunctionCall", + "src": "39436:71:10" + }, + "nativeSrc": "39436:71:10", + "nodeType": "YulExpressionStatement", + "src": "39436:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "39292:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39362:9:10", + "nodeType": "YulTypedName", + "src": "39362:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39374:6:10", + "nodeType": "YulTypedName", + "src": "39374:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39385:4:10", + "nodeType": "YulTypedName", + "src": "39385:4:10", + "type": "" + } + ], + "src": "39292:222:10" + }, + { + "body": { + "nativeSrc": "39563:43:10", + "nodeType": "YulBlock", + "src": "39563:43:10", + "statements": [ + { + "nativeSrc": "39573:27:10", + "nodeType": "YulAssignment", + "src": "39573:27:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "39588:5:10", + "nodeType": "YulIdentifier", + "src": "39588:5:10" + }, + { + "kind": "number", + "nativeSrc": "39595:4:10", + "nodeType": "YulLiteral", + "src": "39595:4:10", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39584:3:10", + "nodeType": "YulIdentifier", + "src": "39584:3:10" + }, + "nativeSrc": "39584:16:10", + "nodeType": "YulFunctionCall", + "src": "39584:16:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "39573:7:10", + "nodeType": "YulIdentifier", + "src": "39573:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "39520:86:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "39545:5:10", + "nodeType": "YulTypedName", + "src": "39545:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "39555:7:10", + "nodeType": "YulTypedName", + "src": "39555:7:10", + "type": "" + } + ], + "src": "39520:86:10" + }, + { + "body": { + "nativeSrc": "39673:51:10", + "nodeType": "YulBlock", + "src": "39673:51:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39690:3:10", + "nodeType": "YulIdentifier", + "src": "39690:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "39711:5:10", + "nodeType": "YulIdentifier", + "src": "39711:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nativeSrc": "39695:15:10", + "nodeType": "YulIdentifier", + "src": "39695:15:10" + }, + "nativeSrc": "39695:22:10", + "nodeType": "YulFunctionCall", + "src": "39695:22:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39683:6:10", + "nodeType": "YulIdentifier", + "src": "39683:6:10" + }, + "nativeSrc": "39683:35:10", + "nodeType": "YulFunctionCall", + "src": "39683:35:10" + }, + "nativeSrc": "39683:35:10", + "nodeType": "YulExpressionStatement", + "src": "39683:35:10" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "39612:112:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "39661:5:10", + "nodeType": "YulTypedName", + "src": "39661:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "39668:3:10", + "nodeType": "YulTypedName", + "src": "39668:3:10", + "type": "" + } + ], + "src": "39612:112:10" + }, + { + "body": { + "nativeSrc": "39908:367:10", + "nodeType": "YulBlock", + "src": "39908:367:10", + "statements": [ + { + "nativeSrc": "39918:27:10", + "nodeType": "YulAssignment", + "src": "39918:27:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39930:9:10", + "nodeType": "YulIdentifier", + "src": "39930:9:10" + }, + { + "kind": "number", + "nativeSrc": "39941:3:10", + "nodeType": "YulLiteral", + "src": "39941:3:10", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39926:3:10", + "nodeType": "YulIdentifier", + "src": "39926:3:10" + }, + "nativeSrc": "39926:19:10", + "nodeType": "YulFunctionCall", + "src": "39926:19:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39918:4:10", + "nodeType": "YulIdentifier", + "src": "39918:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39999:6:10", + "nodeType": "YulIdentifier", + "src": "39999:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40012:9:10", + "nodeType": "YulIdentifier", + "src": "40012:9:10" + }, + { + "kind": "number", + "nativeSrc": "40023:1:10", + "nodeType": "YulLiteral", + "src": "40023:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40008:3:10", + "nodeType": "YulIdentifier", + "src": "40008:3:10" + }, + "nativeSrc": "40008:17:10", + "nodeType": "YulFunctionCall", + "src": "40008:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "39955:43:10", + "nodeType": "YulIdentifier", + "src": "39955:43:10" + }, + "nativeSrc": "39955:71:10", + "nodeType": "YulFunctionCall", + "src": "39955:71:10" + }, + "nativeSrc": "39955:71:10", + "nodeType": "YulExpressionStatement", + "src": "39955:71:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "40076:6:10", + "nodeType": "YulIdentifier", + "src": "40076:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40089:9:10", + "nodeType": "YulIdentifier", + "src": "40089:9:10" + }, + { + "kind": "number", + "nativeSrc": "40100:2:10", + "nodeType": "YulLiteral", + "src": "40100:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40085:3:10", + "nodeType": "YulIdentifier", + "src": "40085:3:10" + }, + "nativeSrc": "40085:18:10", + "nodeType": "YulFunctionCall", + "src": "40085:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "40036:39:10", + "nodeType": "YulIdentifier", + "src": "40036:39:10" + }, + "nativeSrc": "40036:68:10", + "nodeType": "YulFunctionCall", + "src": "40036:68:10" + }, + "nativeSrc": "40036:68:10", + "nodeType": "YulExpressionStatement", + "src": "40036:68:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "40158:6:10", + "nodeType": "YulIdentifier", + "src": "40158:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40171:9:10", + "nodeType": "YulIdentifier", + "src": "40171:9:10" + }, + { + "kind": "number", + "nativeSrc": "40182:2:10", + "nodeType": "YulLiteral", + "src": "40182:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40167:3:10", + "nodeType": "YulIdentifier", + "src": "40167:3:10" + }, + "nativeSrc": "40167:18:10", + "nodeType": "YulFunctionCall", + "src": "40167:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "40114:43:10", + "nodeType": "YulIdentifier", + "src": "40114:43:10" + }, + "nativeSrc": "40114:72:10", + "nodeType": "YulFunctionCall", + "src": "40114:72:10" + }, + "nativeSrc": "40114:72:10", + "nodeType": "YulExpressionStatement", + "src": "40114:72:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "40240:6:10", + "nodeType": "YulIdentifier", + "src": "40240:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40253:9:10", + "nodeType": "YulIdentifier", + "src": "40253:9:10" + }, + { + "kind": "number", + "nativeSrc": "40264:2:10", + "nodeType": "YulLiteral", + "src": "40264:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40249:3:10", + "nodeType": "YulIdentifier", + "src": "40249:3:10" + }, + "nativeSrc": "40249:18:10", + "nodeType": "YulFunctionCall", + "src": "40249:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "40196:43:10", + "nodeType": "YulIdentifier", + "src": "40196:43:10" + }, + "nativeSrc": "40196:72:10", + "nodeType": "YulFunctionCall", + "src": "40196:72:10" + }, + "nativeSrc": "40196:72:10", + "nodeType": "YulExpressionStatement", + "src": "40196:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", + "nativeSrc": "39730:545:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39856:9:10", + "nodeType": "YulTypedName", + "src": "39856:9:10", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "39868:6:10", + "nodeType": "YulTypedName", + "src": "39868:6:10", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "39876:6:10", + "nodeType": "YulTypedName", + "src": "39876:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "39884:6:10", + "nodeType": "YulTypedName", + "src": "39884:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39892:6:10", + "nodeType": "YulTypedName", + "src": "39892:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39903:4:10", + "nodeType": "YulTypedName", + "src": "39903:4:10", + "type": "" + } + ], + "src": "39730:545:10" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\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_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 calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_uint64t_bytes_memory_ptrt_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_uint64(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_bytes_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_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\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 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 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 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 abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\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, value1 := abi_decode_t_bytes_calldata_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 value2, value3 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\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_bytes_memory_ptr__to_t_bytes_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_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\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, value1 := abi_decode_t_array$_t_address_$dyn_calldata_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 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_string_memory_ptrt_array$_t_address_$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_string_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_address_$dyn_memory_ptr(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 array_length_t_string_calldata_ptr(value, len) -> length {\n\n length := len\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_calldata_ptr_to_t_string_storage(slot, src, len) {\n\n let newLen := array_length_t_string_calldata_ptr(src, len)\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 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, calldataload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := calldataload(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 := calldataload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value0, value1, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value2, value3, tail)\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_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__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_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$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_string_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(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_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value0, pos)\n }\n\n function array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // string[] -> string[]\n function abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_string_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_string_memory_ptr_to_t_string_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_string_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\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_address_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr_t_bytes4_t_bytes_memory_ptr__to_t_address_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr_t_bytes4_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 mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_to_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_bytes4_to_t_bytes4_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 array_storeLengthForEncoding_t_array$_t_address_$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_address_$dyn_calldata_ptr(ptr) -> data {\n data := ptr\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function calldata_access_t_address(baseRef, ptr) -> value {\n value := abi_decode_t_address(ptr, add(ptr, 32))\n }\n\n function array_nextElement_t_array$_t_address_$dyn_calldata_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_calldata_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, length, pos) -> end {\n\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_calldata_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := calldata_access_t_address(baseRef, srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_calldata_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_calldata_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, value1, tail)\n\n }\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_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$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_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$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_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint64(value) -> converted {\n converted := cleanup_t_uint64(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint64_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint64(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22(memPtr) {\n\n mstore(add(memPtr, 0), \"SignatureVerifier: Invalid sigat\")\n\n mstore(add(memPtr, 32), \"ure\")\n\n }\n\n function abi_encode_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22__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_e3c5fb70bbe15f02a00716185fff12ee1e3aaa6dcbf0e7e08dbbb9a0636bdf22_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a(memPtr) {\n\n mstore(add(memPtr, 0), 0x1900000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a(pos)\n end := add(pos, 2)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function shift_left_192(value) -> newValue {\n newValue :=\n\n shl(192, value)\n\n }\n\n function leftAlign_t_uint64(value) -> aligned {\n aligned := shift_left_192(value)\n }\n\n function abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint64(cleanup_t_uint64(value)))\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_t_address_t_uint64_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_address_t_uint64_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 8)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_decode_tuple_t_bytes_memory_ptrt_uint64t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { 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_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint64(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_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptrt_address_payable(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_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a(memPtr) {\n\n mstore(add(memPtr, 0), \"SignatureVerifier: Signature exp\")\n\n mstore(add(memPtr, 32), \"ired\")\n\n }\n\n function abi_encode_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a__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_e5f9c70fb0fca7bcee302c537d829defa0b7af6be58fa206ab11f91d3c83ab0a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\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_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n", + "id": 10, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018d5780639061b923146101ab578063a3772662146101db578063a644cbdc146101f7578063f2fde38b14610213578063f4d4d2f81461022f576100b4565b806301ffc9a7146100b95780631dcfea09146100e95780635600f04f14610119578063715018a614610137578063736c0d5b146101415780637734340814610171575b600080fd5b6100d360048036038101906100ce919061107b565b61025f565b6040516100e091906110c3565b60405180910390f35b61010360048036038101906100fe91906112c2565b6102d9565b604051610110919061137a565b60405180910390f35b6101216102f1565b60405161012e9190611414565b60405180910390f35b61013f61037f565b005b61015b60048036038101906101569190611436565b610393565b60405161016891906110c3565b60405180910390f35b61018b600480360381019061018691906114c3565b6103b3565b005b6101956103d1565b6040516101a2919061151f565b60405180910390f35b6101c560048036038101906101c09190611590565b6103fa565b6040516101d29190611666565b60405180910390f35b6101f560048036038101906101f091906116de565b6105e6565b005b610211600480360381019061020c919061188f565b6106c6565b005b61022d60048036038101906102289190611436565b610920565b005b61024960048036038101906102449190611590565b6109a6565b6040516102569190611666565b60405180910390f35b60007f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d257506102d182610a54565b5b9050919050565b60006102e785858585610abe565b9050949350505050565b600180546102fe90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90611936565b80156103775780601f1061034c57610100808354040283529160200191610377565b820191906000526020600020905b81548152906001019060200180831161035a57829003601f168201915b505050505081565b610387610b05565b6103916000610b8c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6103bb610b05565b8181600191826103cc929190611b28565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000639061b92360e01b8686868660405160240161041d9493929190611c25565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000600167ffffffffffffffff81111561049957610498611197565b5b6040519080825280602002602001820160405280156104cc57816020015b60608152602001906001900390816104b75790505b509050600180546104dc90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611936565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b50505050508160008151811061056e5761056d611c60565b5b602002602001018190525030818363f4d4d2f860e01b8530604051602001610597929190611c8f565b6040516020818303038152906040526040517f556f18300000000000000000000000000000000000000000000000000000000081526004016105dd959493929190611dda565b60405180910390fd5b6105ee610b05565b60005b828290508110156106885760016002600085858581811061061557610614611c60565b5b905060200201602081019061062a9190611436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506105f1565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d782826040516106ba929190611f05565b60405180910390a15050565b60006106d0610c50565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff1614801561071e5750825b9050600060018367ffffffffffffffff16148015610753575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610761575080155b15610798576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107e85760018560000160086101000a81548160ff0219169083151502179055505b86600190816107f79190611f29565b5060005b86518110156108835760016002600089848151811061081d5761081c611c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107fb565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7866040516108b39190612081565b60405180910390a183156109175760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161090e91906120de565b60405180910390a15b50505050505050565b610928610b05565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361099a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610991919061151f565b60405180910390fd5b6109a381610b8c565b50565b60606000806109b785858989610c78565b91509150600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e9061216b565b60405180910390fd5b8092505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000848484805190602001208480519060200120604051602001610ae59493929190612281565b604051602081830303815290604052805190602001209050949350505050565b610b0d610d27565b73ffffffffffffffffffffffffffffffffffffffff16610b2b6103d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a57610b4e610d27565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610b81919061151f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6000606060008060008686810190610c9091906122da565b9250925092506000808a8a810190610ca891906123a3565b915091506000610cc3610cbd8387868a610abe565b85610d2f565b9050428567ffffffffffffffff161015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612471565b60405180910390fd5b80869750975050505050505094509492505050565b600033905090565b600080600080610d3f8686610d5b565b925092509250610d4f8282610db7565b82935050505092915050565b60008060006041845103610da05760008060006020870151925060408701519150606087015160001a9050610d9288828585610f1b565b955095509550505050610db0565b60006002855160001b9250925092505b9250925092565b60006003811115610dcb57610dca612491565b5b826003811115610dde57610ddd612491565b5b0315610f175760016003811115610df857610df7612491565b5b826003811115610e0b57610e0a612491565b5b03610e42576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115610e5657610e55612491565b5b826003811115610e6957610e68612491565b5b03610eae578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401610ea591906124cf565b60405180910390fd5b600380811115610ec157610ec0612491565b5b826003811115610ed457610ed3612491565b5b03610f1657806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401610f0d919061137a565b60405180910390fd5b5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115610f5b576000600385925092509250611005565b600060018888888860405160008152602001604052604051610f809493929190612506565b6020604051602081039080840390855afa158015610fa2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff657600060016000801b93509350935050611005565b8060008060001b935093509350505b9450945094915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61105881611023565b811461106357600080fd5b50565b6000813590506110758161104f565b92915050565b60006020828403121561109157611090611019565b5b600061109f84828501611066565b91505092915050565b60008115159050919050565b6110bd816110a8565b82525050565b60006020820190506110d860008301846110b4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611109826110de565b9050919050565b611119816110fe565b811461112457600080fd5b50565b60008135905061113681611110565b92915050565b600067ffffffffffffffff82169050919050565b6111598161113c565b811461116457600080fd5b50565b60008135905061117681611150565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6111cf82611186565b810181811067ffffffffffffffff821117156111ee576111ed611197565b5b80604052505050565b600061120161100f565b905061120d82826111c6565b919050565b600067ffffffffffffffff82111561122d5761122c611197565b5b61123682611186565b9050602081019050919050565b82818337600083830152505050565b600061126561126084611212565b6111f7565b90508281526020810184848401111561128157611280611181565b5b61128c848285611243565b509392505050565b600082601f8301126112a9576112a861117c565b5b81356112b9848260208601611252565b91505092915050565b600080600080608085870312156112dc576112db611019565b5b60006112ea87828801611127565b94505060206112fb87828801611167565b935050604085013567ffffffffffffffff81111561131c5761131b61101e565b5b61132887828801611294565b925050606085013567ffffffffffffffff8111156113495761134861101e565b5b61135587828801611294565b91505092959194509250565b6000819050919050565b61137481611361565b82525050565b600060208201905061138f600083018461136b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113cf5780820151818401526020810190506113b4565b60008484015250505050565b60006113e682611395565b6113f081856113a0565b93506114008185602086016113b1565b61140981611186565b840191505092915050565b6000602082019050818103600083015261142e81846113db565b905092915050565b60006020828403121561144c5761144b611019565b5b600061145a84828501611127565b91505092915050565b600080fd5b600080fd5b60008083601f8401126114835761148261117c565b5b8235905067ffffffffffffffff8111156114a05761149f611463565b5b6020830191508360018202830111156114bc576114bb611468565b5b9250929050565b600080602083850312156114da576114d9611019565b5b600083013567ffffffffffffffff8111156114f8576114f761101e565b5b6115048582860161146d565b92509250509250929050565b611519816110fe565b82525050565b60006020820190506115346000830184611510565b92915050565b60008083601f8401126115505761154f61117c565b5b8235905067ffffffffffffffff81111561156d5761156c611463565b5b60208301915083600182028301111561158957611588611468565b5b9250929050565b600080600080604085870312156115aa576115a9611019565b5b600085013567ffffffffffffffff8111156115c8576115c761101e565b5b6115d48782880161153a565b9450945050602085013567ffffffffffffffff8111156115f7576115f661101e565b5b6116038782880161153a565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b600061163882611611565b611642818561161c565b93506116528185602086016113b1565b61165b81611186565b840191505092915050565b60006020820190508181036000830152611680818461162d565b905092915050565b60008083601f84011261169e5761169d61117c565b5b8235905067ffffffffffffffff8111156116bb576116ba611463565b5b6020830191508360208202830111156116d7576116d6611468565b5b9250929050565b600080602083850312156116f5576116f4611019565b5b600083013567ffffffffffffffff8111156117135761171261101e565b5b61171f85828601611688565b92509250509250929050565b600067ffffffffffffffff82111561174657611745611197565b5b61174f82611186565b9050602081019050919050565b600061176f61176a8461172b565b6111f7565b90508281526020810184848401111561178b5761178a611181565b5b611796848285611243565b509392505050565b600082601f8301126117b3576117b261117c565b5b81356117c384826020860161175c565b91505092915050565b600067ffffffffffffffff8211156117e7576117e6611197565b5b602082029050602081019050919050565b600061180b611806846117cc565b6111f7565b9050808382526020820190506020840283018581111561182e5761182d611468565b5b835b8181101561185757806118438882611127565b845260208401935050602081019050611830565b5050509392505050565b600082601f8301126118765761187561117c565b5b81356118868482602086016117f8565b91505092915050565b600080604083850312156118a6576118a5611019565b5b600083013567ffffffffffffffff8111156118c4576118c361101e565b5b6118d08582860161179e565b925050602083013567ffffffffffffffff8111156118f1576118f061101e565b5b6118fd85828601611861565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061194e57607f821691505b60208210810361196157611960611907565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611997565b6119de8683611997565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000611a25611a20611a1b846119f6565b611a00565b6119f6565b9050919050565b6000819050919050565b611a3f83611a0a565b611a53611a4b82611a2c565b8484546119a4565b825550505050565b600090565b611a68611a5b565b611a73818484611a36565b505050565b5b81811015611a9757611a8c600082611a60565b600181019050611a79565b5050565b601f821115611adc57611aad81611972565b611ab684611987565b81016020851015611ac5578190505b611ad9611ad185611987565b830182611a78565b50505b505050565b600082821c905092915050565b6000611aff60001984600802611ae1565b1980831691505092915050565b6000611b188383611aee565b9150826002028217905092915050565b611b328383611967565b67ffffffffffffffff811115611b4b57611b4a611197565b5b611b558254611936565b611b60828285611a9b565b6000601f831160018114611b8f5760008415611b7d578287013590505b611b878582611b0c565b865550611bef565b601f198416611b9d86611972565b60005b82811015611bc557848901358255600182019150602085019450602081019050611ba0565b86831015611be25784890135611bde601f891682611aee565b8355505b6001600288020188555050505b50505050505050565b6000611c04838561161c565b9350611c11838584611243565b611c1a83611186565b840190509392505050565b60006040820190508181036000830152611c40818688611bf8565b90508181036020830152611c55818486611bf8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040820190508181036000830152611ca9818561162d565b9050611cb86020830184611510565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000611d0782611395565b611d118185611ceb565b9350611d218185602086016113b1565b611d2a81611186565b840191505092915050565b6000611d418383611cfc565b905092915050565b6000602082019050919050565b6000611d6182611cbf565b611d6b8185611cca565b935083602082028501611d7d85611cdb565b8060005b85811015611db95784840389528151611d9a8582611d35565b9450611da583611d49565b925060208a01995050600181019050611d81565b50829750879550505050505092915050565b611dd481611023565b82525050565b600060a082019050611def6000830188611510565b8181036020830152611e018187611d56565b90508181036040830152611e15818661162d565b9050611e246060830185611dcb565b8181036080830152611e36818461162d565b90509695505050505050565b600082825260208201905092915050565b6000819050919050565b611e66816110fe565b82525050565b6000611e788383611e5d565b60208301905092915050565b6000611e936020840184611127565b905092915050565b6000602082019050919050565b6000611eb48385611e42565b9350611ebf82611e53565b8060005b85811015611ef857611ed58284611e84565b611edf8882611e6c565b9750611eea83611e9b565b925050600181019050611ec3565b5085925050509392505050565b60006020820190508181036000830152611f20818486611ea8565b90509392505050565b611f3282611395565b67ffffffffffffffff811115611f4b57611f4a611197565b5b611f558254611936565b611f60828285611a9b565b600060209050601f831160018114611f935760008415611f81578287015190505b611f8b8582611b0c565b865550611ff3565b601f198416611fa186611972565b60005b82811015611fc957848901518255600182019150602085019450602081019050611fa4565b86831015611fe65784890151611fe2601f891682611aee565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061202e82611ffb565b6120388185611e42565b935061204383612006565b8060005b8381101561207457815161205b8882611e6c565b975061206683612016565b925050600181019050612047565b5085935050505092915050565b6000602082019050818103600083015261209b8184612023565b905092915050565b6000819050919050565b60006120c86120c36120be846120a3565b611a00565b61113c565b9050919050565b6120d8816120ad565b82525050565b60006020820190506120f360008301846120cf565b92915050565b7f5369676e617475726556657269666965723a20496e76616c696420736967617460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b60006121556023836113a0565b9150612160826120f9565b604082019050919050565b6000602082019050818103600083015261218481612148565b9050919050565b600081905092915050565b7f1900000000000000000000000000000000000000000000000000000000000000600082015250565b60006121cc60028361218b565b91506121d782612196565b600282019050919050565b60008160601b9050919050565b60006121fa826121e2565b9050919050565b600061220c826121ef565b9050919050565b61222461221f826110fe565b612201565b82525050565b60008160c01b9050919050565b60006122428261222a565b9050919050565b61225a6122558261113c565b612237565b82525050565b6000819050919050565b61227b61227682611361565b612260565b82525050565b600061228c826121bf565b91506122988287612213565b6014820191506122a88286612249565b6008820191506122b8828561226a565b6020820191506122c8828461226a565b60208201915081905095945050505050565b6000806000606084860312156122f3576122f2611019565b5b600084013567ffffffffffffffff8111156123115761231061101e565b5b61231d86828701611294565b935050602061232e86828701611167565b925050604084013567ffffffffffffffff81111561234f5761234e61101e565b5b61235b86828701611294565b9150509250925092565b6000612370826110de565b9050919050565b61238081612365565b811461238b57600080fd5b50565b60008135905061239d81612377565b92915050565b600080604083850312156123ba576123b9611019565b5b600083013567ffffffffffffffff8111156123d8576123d761101e565b5b6123e485828601611294565b92505060206123f58582860161238e565b9150509250929050565b7f5369676e617475726556657269666965723a205369676e61747572652065787060008201527f6972656400000000000000000000000000000000000000000000000000000000602082015250565b600061245b6024836113a0565b9150612466826123ff565b604082019050919050565b6000602082019050818103600083015261248a8161244e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6124c9816119f6565b82525050565b60006020820190506124e460008301846124c0565b92915050565b600060ff82169050919050565b612500816124ea565b82525050565b600060808201905061251b600083018761136b565b61252860208301866124f7565b612535604083018561136b565b612542606083018461136b565b9594505050505056fea2646970667358221220767487219e85098f12d1bd65ea4f86a278f2d3a91c85914eb8d07034fa4d93a264736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x9061B923 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xA3772662 EQ PUSH2 0x1DB JUMPI DUP1 PUSH4 0xA644CBDC EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xF4D4D2F8 EQ PUSH2 0x22F JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x1DCFEA09 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x5600F04F EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x77343408 EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x107B JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0x10C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x12C2 JUMP JUMPDEST PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0x137A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x121 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12E SWAP2 SWAP1 PUSH2 0x1414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH2 0x37F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0x1436 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x10C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x14C3 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x195 PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A2 SWAP2 SWAP1 PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C0 SWAP2 SWAP1 PUSH2 0x1590 JUMP JUMPDEST PUSH2 0x3FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x1666 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x5E6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x188F JUMP JUMPDEST PUSH2 0x6C6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0x1436 JUMP JUMPDEST PUSH2 0x920 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x249 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x244 SWAP2 SWAP1 PUSH2 0x1590 JUMP JUMPDEST PUSH2 0x9A6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x1666 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x9061B92300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2D2 JUMPI POP PUSH2 0x2D1 DUP3 PUSH2 0xA54 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E7 DUP6 DUP6 DUP6 DUP6 PUSH2 0xABE JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x2FE SWAP1 PUSH2 0x1936 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 0x32A SWAP1 PUSH2 0x1936 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x377 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x34C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x377 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 0x35A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x387 PUSH2 0xB05 JUMP JUMPDEST PUSH2 0x391 PUSH1 0x0 PUSH2 0xB8C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x3BB PUSH2 0xB05 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 SWAP2 DUP3 PUSH2 0x3CC SWAP3 SWAP2 SWAP1 PUSH2 0x1B28 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH4 0x9061B923 PUSH1 0xE0 SHL DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x41D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1C25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x499 JUMPI PUSH2 0x498 PUSH2 0x1197 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 0x4CC JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x4B7 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x4DC SWAP1 PUSH2 0x1936 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 0x508 SWAP1 PUSH2 0x1936 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x555 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x52A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x555 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 0x538 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x56E JUMPI PUSH2 0x56D PUSH2 0x1C60 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP ADDRESS DUP2 DUP4 PUSH4 0xF4D4D2F8 PUSH1 0xE0 SHL DUP6 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x597 SWAP3 SWAP2 SWAP1 PUSH2 0x1C8F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x556F183000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DD SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x688 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0x615 JUMPI PUSH2 0x614 PUSH2 0x1C60 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x62A SWAP2 SWAP1 PUSH2 0x1436 JUMP JUMPDEST 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x5F1 JUMP JUMPDEST POP PUSH32 0xAB0B9CC3A46B568CB08D985497CDE8AB7E18892D01F58DB7DC7F0D2AF859B2D7 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x6BA SWAP3 SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D0 PUSH2 0xC50 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x71E JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x753 JUMPI POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x761 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x798 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 ISZERO PUSH2 0x7E8 JUMPI PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST DUP7 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x7F7 SWAP2 SWAP1 PUSH2 0x1F29 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x883 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP10 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x81D JUMPI PUSH2 0x81C PUSH2 0x1C60 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD 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 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x7FB JUMP JUMPDEST POP PUSH32 0xAB0B9CC3A46B568CB08D985497CDE8AB7E18892D01F58DB7DC7F0D2AF859B2D7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x8B3 SWAP2 SWAP1 PUSH2 0x2081 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP4 ISZERO PUSH2 0x917 JUMPI PUSH1 0x0 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x90E SWAP2 SWAP1 PUSH2 0x20DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x928 PUSH2 0xB05 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9A3 DUP2 PUSH2 0xB8C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x9B7 DUP6 DUP6 DUP10 DUP10 PUSH2 0xC78 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x2 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 PUSH2 0xA47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3E SWAP1 PUSH2 0x216B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAE5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2281 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xB0D PUSH2 0xD27 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB2B PUSH2 0x3D1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB8A JUMPI PUSH2 0xB4E PUSH2 0xD27 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP2 SWAP1 PUSH2 0x151F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP7 DUP2 ADD SWAP1 PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x22DA JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP1 DUP11 DUP11 DUP2 ADD SWAP1 PUSH2 0xCA8 SWAP2 SWAP1 PUSH2 0x23A3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xCC3 PUSH2 0xCBD DUP4 DUP8 DUP7 DUP11 PUSH2 0xABE JUMP JUMPDEST DUP6 PUSH2 0xD2F JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP6 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0xD12 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD09 SWAP1 PUSH2 0x2471 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP7 SWAP8 POP SWAP8 POP POP POP POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0xD3F DUP7 DUP7 PUSH2 0xD5B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0xD4F DUP3 DUP3 PUSH2 0xDB7 JUMP JUMPDEST DUP3 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x41 DUP5 MLOAD SUB PUSH2 0xDA0 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 DUP8 ADD MLOAD SWAP3 POP PUSH1 0x40 DUP8 ADD MLOAD SWAP2 POP PUSH1 0x60 DUP8 ADD MLOAD PUSH1 0x0 BYTE SWAP1 POP PUSH2 0xD92 DUP9 DUP3 DUP6 DUP6 PUSH2 0xF1B JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP6 MLOAD PUSH1 0x0 SHL SWAP3 POP SWAP3 POP SWAP3 POP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDDE JUMPI PUSH2 0xDDD PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB ISZERO PUSH2 0xF17 JUMPI PUSH1 0x1 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDF8 JUMPI PUSH2 0xDF7 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE0B JUMPI PUSH2 0xE0A PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE42 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF645EEDF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE56 JUMPI PUSH2 0xE55 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE69 JUMPI PUSH2 0xE68 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xEAE JUMPI DUP1 PUSH1 0x0 SHR PUSH1 0x40 MLOAD PUSH32 0xFCE698F700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA5 SWAP2 SWAP1 PUSH2 0x24CF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 DUP2 GT ISZERO PUSH2 0xEC1 JUMPI PUSH2 0xEC0 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xED4 JUMPI PUSH2 0xED3 PUSH2 0x2491 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xF16 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD78BCE0C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF0D SWAP2 SWAP1 PUSH2 0x137A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 PUSH1 0x0 SHR GT ISZERO PUSH2 0xF5B JUMPI PUSH1 0x0 PUSH1 0x3 DUP6 SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x1005 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xF80 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2506 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFF6 JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP1 SHL SWAP4 POP SWAP4 POP SWAP4 POP POP PUSH2 0x1005 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 SHL SWAP4 POP SWAP4 POP SWAP4 POP POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 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 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1058 DUP2 PUSH2 0x1023 JUMP JUMPDEST DUP2 EQ PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1075 DUP2 PUSH2 0x104F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1091 JUMPI PUSH2 0x1090 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x109F DUP5 DUP3 DUP6 ADD PUSH2 0x1066 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10BD DUP2 PUSH2 0x10A8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x10B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1109 DUP3 PUSH2 0x10DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1119 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP2 EQ PUSH2 0x1124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1136 DUP2 PUSH2 0x1110 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1159 DUP2 PUSH2 0x113C JUMP JUMPDEST DUP2 EQ PUSH2 0x1164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1176 DUP2 PUSH2 0x1150 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0x11CF DUP3 PUSH2 0x1186 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x11EE JUMPI PUSH2 0x11ED PUSH2 0x1197 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1201 PUSH2 0x100F JUMP JUMPDEST SWAP1 POP PUSH2 0x120D DUP3 DUP3 PUSH2 0x11C6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x122D JUMPI PUSH2 0x122C PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x1236 DUP3 PUSH2 0x1186 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 0x1265 PUSH2 0x1260 DUP5 PUSH2 0x1212 JUMP JUMPDEST PUSH2 0x11F7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1281 JUMPI PUSH2 0x1280 PUSH2 0x1181 JUMP JUMPDEST JUMPDEST PUSH2 0x128C DUP5 DUP3 DUP6 PUSH2 0x1243 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12A9 JUMPI PUSH2 0x12A8 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12B9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1252 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x12DC JUMPI PUSH2 0x12DB PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12EA DUP8 DUP3 DUP9 ADD PUSH2 0x1127 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x12FB DUP8 DUP3 DUP9 ADD PUSH2 0x1167 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x131C JUMPI PUSH2 0x131B PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1328 DUP8 DUP3 DUP9 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1355 DUP8 DUP3 DUP9 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1374 DUP2 PUSH2 0x1361 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x138F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x136B JUMP JUMPDEST 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 0x13CF JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x13B4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E6 DUP3 PUSH2 0x1395 JUMP JUMPDEST PUSH2 0x13F0 DUP2 DUP6 PUSH2 0x13A0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1400 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x1409 DUP2 PUSH2 0x1186 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 0x142E DUP2 DUP5 PUSH2 0x13DB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144C JUMPI PUSH2 0x144B PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x145A DUP5 DUP3 DUP6 ADD PUSH2 0x1127 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1483 JUMPI PUSH2 0x1482 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14A0 JUMPI PUSH2 0x149F PUSH2 0x1463 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x14BC JUMPI PUSH2 0x14BB PUSH2 0x1468 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14DA JUMPI PUSH2 0x14D9 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F8 JUMPI PUSH2 0x14F7 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1504 DUP6 DUP3 DUP7 ADD PUSH2 0x146D JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1519 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1534 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1510 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1550 JUMPI PUSH2 0x154F PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x156D JUMPI PUSH2 0x156C PUSH2 0x1463 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1589 JUMPI PUSH2 0x1588 PUSH2 0x1468 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15AA JUMPI PUSH2 0x15A9 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15C8 JUMPI PUSH2 0x15C7 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x15D4 DUP8 DUP3 DUP9 ADD PUSH2 0x153A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15F7 JUMPI PUSH2 0x15F6 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x1603 DUP8 DUP3 DUP9 ADD PUSH2 0x153A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 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 0x1638 DUP3 PUSH2 0x1611 JUMP JUMPDEST PUSH2 0x1642 DUP2 DUP6 PUSH2 0x161C JUMP JUMPDEST SWAP4 POP PUSH2 0x1652 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x165B DUP2 PUSH2 0x1186 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 0x1680 DUP2 DUP5 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x169E JUMPI PUSH2 0x169D PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16BB JUMPI PUSH2 0x16BA PUSH2 0x1463 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x16D7 JUMPI PUSH2 0x16D6 PUSH2 0x1468 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x16F5 JUMPI PUSH2 0x16F4 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1713 JUMPI PUSH2 0x1712 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x171F DUP6 DUP3 DUP7 ADD PUSH2 0x1688 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1746 JUMPI PUSH2 0x1745 PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x174F DUP3 PUSH2 0x1186 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176F PUSH2 0x176A DUP5 PUSH2 0x172B JUMP JUMPDEST PUSH2 0x11F7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x178B JUMPI PUSH2 0x178A PUSH2 0x1181 JUMP JUMPDEST JUMPDEST PUSH2 0x1796 DUP5 DUP3 DUP6 PUSH2 0x1243 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17B3 JUMPI PUSH2 0x17B2 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17C3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x17E7 JUMPI PUSH2 0x17E6 PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180B PUSH2 0x1806 DUP5 PUSH2 0x17CC JUMP JUMPDEST PUSH2 0x11F7 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 0x182E JUMPI PUSH2 0x182D PUSH2 0x1468 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1857 JUMPI DUP1 PUSH2 0x1843 DUP9 DUP3 PUSH2 0x1127 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1830 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1876 JUMPI PUSH2 0x1875 PUSH2 0x117C JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1886 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x17F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18A6 JUMPI PUSH2 0x18A5 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH2 0x18C3 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x179E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18F1 JUMPI PUSH2 0x18F0 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x18FD DUP6 DUP3 DUP7 ADD PUSH2 0x1861 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 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 0x194E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1961 JUMPI PUSH2 0x1960 PUSH2 0x1907 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 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 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 0x19D4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1997 JUMP JUMPDEST PUSH2 0x19DE DUP7 DUP4 PUSH2 0x1997 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 0x1A25 PUSH2 0x1A20 PUSH2 0x1A1B DUP5 PUSH2 0x19F6 JUMP JUMPDEST PUSH2 0x1A00 JUMP JUMPDEST PUSH2 0x19F6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A3F DUP4 PUSH2 0x1A0A JUMP JUMPDEST PUSH2 0x1A53 PUSH2 0x1A4B DUP3 PUSH2 0x1A2C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x19A4 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x1A68 PUSH2 0x1A5B JUMP JUMPDEST PUSH2 0x1A73 DUP2 DUP5 DUP5 PUSH2 0x1A36 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A97 JUMPI PUSH2 0x1A8C PUSH1 0x0 DUP3 PUSH2 0x1A60 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1A79 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1ADC JUMPI PUSH2 0x1AAD DUP2 PUSH2 0x1972 JUMP JUMPDEST PUSH2 0x1AB6 DUP5 PUSH2 0x1987 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AC5 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1AD9 PUSH2 0x1AD1 DUP6 PUSH2 0x1987 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1A78 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 0x1AFF PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1AE1 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B18 DUP4 DUP4 PUSH2 0x1AEE JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B32 DUP4 DUP4 PUSH2 0x1967 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B4B JUMPI PUSH2 0x1B4A PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x1B55 DUP3 SLOAD PUSH2 0x1936 JUMP JUMPDEST PUSH2 0x1B60 DUP3 DUP3 DUP6 PUSH2 0x1A9B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1B7D JUMPI DUP3 DUP8 ADD CALLDATALOAD SWAP1 POP JUMPDEST PUSH2 0x1B87 DUP6 DUP3 PUSH2 0x1B0C JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1BEF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1B9D DUP7 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BC5 JUMPI DUP5 DUP10 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BA0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1BE2 JUMPI DUP5 DUP10 ADD CALLDATALOAD PUSH2 0x1BDE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1AEE 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 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C04 DUP4 DUP6 PUSH2 0x161C JUMP JUMPDEST SWAP4 POP PUSH2 0x1C11 DUP4 DUP6 DUP5 PUSH2 0x1243 JUMP JUMPDEST PUSH2 0x1C1A DUP4 PUSH2 0x1186 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1C40 DUP2 DUP7 DUP9 PUSH2 0x1BF8 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1C55 DUP2 DUP5 DUP7 PUSH2 0x1BF8 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP 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 DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CA9 DUP2 DUP6 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP PUSH2 0x1CB8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1510 JUMP JUMPDEST 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD 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 0x1D07 DUP3 PUSH2 0x1395 JUMP JUMPDEST PUSH2 0x1D11 DUP2 DUP6 PUSH2 0x1CEB JUMP JUMPDEST SWAP4 POP PUSH2 0x1D21 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13B1 JUMP JUMPDEST PUSH2 0x1D2A DUP2 PUSH2 0x1186 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D41 DUP4 DUP4 PUSH2 0x1CFC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D61 DUP3 PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0x1D6B DUP2 DUP6 PUSH2 0x1CCA JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x1D7D DUP6 PUSH2 0x1CDB JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1DB9 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x1D9A DUP6 DUP3 PUSH2 0x1D35 JUMP JUMPDEST SWAP5 POP PUSH2 0x1DA5 DUP4 PUSH2 0x1D49 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1D81 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DD4 DUP2 PUSH2 0x1023 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1DEF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1510 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E01 DUP2 DUP8 PUSH2 0x1D56 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1E15 DUP2 DUP7 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP PUSH2 0x1E24 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1DCB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1E36 DUP2 DUP5 PUSH2 0x162D JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 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 PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E66 DUP2 PUSH2 0x10FE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E78 DUP4 DUP4 PUSH2 0x1E5D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E93 PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x1127 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB4 DUP4 DUP6 PUSH2 0x1E42 JUMP JUMPDEST SWAP4 POP PUSH2 0x1EBF DUP3 PUSH2 0x1E53 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1EF8 JUMPI PUSH2 0x1ED5 DUP3 DUP5 PUSH2 0x1E84 JUMP JUMPDEST PUSH2 0x1EDF DUP9 DUP3 PUSH2 0x1E6C JUMP JUMPDEST SWAP8 POP PUSH2 0x1EEA DUP4 PUSH2 0x1E9B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1EC3 JUMP JUMPDEST POP DUP6 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F20 DUP2 DUP5 DUP7 PUSH2 0x1EA8 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1F32 DUP3 PUSH2 0x1395 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F4B JUMPI PUSH2 0x1F4A PUSH2 0x1197 JUMP JUMPDEST JUMPDEST PUSH2 0x1F55 DUP3 SLOAD PUSH2 0x1936 JUMP JUMPDEST PUSH2 0x1F60 DUP3 DUP3 DUP6 PUSH2 0x1A9B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1F93 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1F81 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1F8B DUP6 DUP3 PUSH2 0x1B0C JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1FF3 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1FA1 DUP7 PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1FC9 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 0x1FA4 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1FE6 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1FE2 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1AEE 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 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x202E DUP3 PUSH2 0x1FFB JUMP JUMPDEST PUSH2 0x2038 DUP2 DUP6 PUSH2 0x1E42 JUMP JUMPDEST SWAP4 POP PUSH2 0x2043 DUP4 PUSH2 0x2006 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2074 JUMPI DUP2 MLOAD PUSH2 0x205B DUP9 DUP3 PUSH2 0x1E6C JUMP JUMPDEST SWAP8 POP PUSH2 0x2066 DUP4 PUSH2 0x2016 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2047 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 0x209B DUP2 DUP5 PUSH2 0x2023 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20C8 PUSH2 0x20C3 PUSH2 0x20BE DUP5 PUSH2 0x20A3 JUMP JUMPDEST PUSH2 0x1A00 JUMP JUMPDEST PUSH2 0x113C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20D8 DUP2 PUSH2 0x20AD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x20F3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5369676E617475726556657269666965723A20496E76616C6964207369676174 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7572650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2155 PUSH1 0x23 DUP4 PUSH2 0x13A0 JUMP JUMPDEST SWAP2 POP PUSH2 0x2160 DUP3 PUSH2 0x20F9 JUMP JUMPDEST PUSH1 0x40 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 0x2184 DUP2 PUSH2 0x2148 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x1900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21CC PUSH1 0x2 DUP4 PUSH2 0x218B JUMP JUMPDEST SWAP2 POP PUSH2 0x21D7 DUP3 PUSH2 0x2196 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21FA DUP3 PUSH2 0x21E2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x220C DUP3 PUSH2 0x21EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2224 PUSH2 0x221F DUP3 PUSH2 0x10FE JUMP JUMPDEST PUSH2 0x2201 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xC0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2242 DUP3 PUSH2 0x222A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x225A PUSH2 0x2255 DUP3 PUSH2 0x113C JUMP JUMPDEST PUSH2 0x2237 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x227B PUSH2 0x2276 DUP3 PUSH2 0x1361 JUMP JUMPDEST PUSH2 0x2260 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228C DUP3 PUSH2 0x21BF JUMP JUMPDEST SWAP2 POP PUSH2 0x2298 DUP3 DUP8 PUSH2 0x2213 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x22A8 DUP3 DUP7 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x22B8 DUP3 DUP6 PUSH2 0x226A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x22C8 DUP3 DUP5 PUSH2 0x226A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22F3 JUMPI PUSH2 0x22F2 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2311 JUMPI PUSH2 0x2310 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x231D DUP7 DUP3 DUP8 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x232E DUP7 DUP3 DUP8 ADD PUSH2 0x1167 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x234F JUMPI PUSH2 0x234E PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x235B DUP7 DUP3 DUP8 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2370 DUP3 PUSH2 0x10DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2380 DUP2 PUSH2 0x2365 JUMP JUMPDEST DUP2 EQ PUSH2 0x238B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x239D DUP2 PUSH2 0x2377 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23BA JUMPI PUSH2 0x23B9 PUSH2 0x1019 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23D8 JUMPI PUSH2 0x23D7 PUSH2 0x101E JUMP JUMPDEST JUMPDEST PUSH2 0x23E4 DUP6 DUP3 DUP7 ADD PUSH2 0x1294 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23F5 DUP6 DUP3 DUP7 ADD PUSH2 0x238E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x5369676E617475726556657269666965723A205369676E617475726520657870 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6972656400000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x245B PUSH1 0x24 DUP4 PUSH2 0x13A0 JUMP JUMPDEST SWAP2 POP PUSH2 0x2466 DUP3 PUSH2 0x23FF JUMP JUMPDEST PUSH1 0x40 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 0x248A DUP2 PUSH2 0x244E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x24C9 DUP2 PUSH2 0x19F6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x24E4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x24C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2500 DUP2 PUSH2 0x24EA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x251B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x136B JUMP JUMPDEST PUSH2 0x2528 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x24F7 JUMP JUMPDEST PUSH2 0x2535 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x136B JUMP JUMPDEST PUSH2 0x2542 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x136B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x7487219E85098F12D1BD65EA4F86A278F2D3A91C85914E 0xB8 0xD0 PUSH17 0x34FA4D93A264736F6C6343000818003300 ", + "sourceMap": "633:3140:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3118:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1378:355;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;745:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;768:39:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3411:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1638:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2068:567:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3557:214;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1096:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2744:368:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3118:235;3209:4;3259:35;3244:50;;;:11;:50;;;;:102;;;;3310:36;3334:11;3310:23;:36::i;:::-;3244:102;3225:121;;3118:235;;;:::o;1378:355::-;1541:7;1579:147;1632:6;1656:7;1681;1706:6;1579:35;:147::i;:::-;1560:166;;1378:355;;;;;;:::o;745:17::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;768:39:6:-;;;;;;;;;;;;;;;;;;;;;;:::o;3411:84::-;1531:13:0;:11;:13::i;:::-;3484:4:6::1;;3478:3;:10;;;;;;;:::i;:::-;;3411:84:::0;;:::o;1638:85:0:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2068:567:6:-;2181:12;2205:21;2265:33;;;2312:4;;2330;;2229:115;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2205:139;;2354:20;2390:1;2377:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2354:38;;2412:3;2402:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:4;2407:1;2402:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;2468:4;2487;2505:8;2527:42;;;2594:8;2612:4;2583:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2432:196;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3557:214;1531:13:0;:11;:13::i;:::-;3640:6:6::1;3635:95;3656:8;;:15;;3652:1;:19;3635:95;;;3715:4;3692:7;:20;3700:8;;3709:1;3700:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3692:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3673:3;;;;;;;3635:95;;;;3744:20;3755:8;;3744:20;;;;;;;:::i;:::-;;;;;;;;3557:214:::0;;:::o;1096:276::-;4158:30:2;4191:26;:24;:26::i;:::-;4158:59;;4279:19;4302:1;:15;;;;;;;;;;;;4301:16;4279:38;;4327:18;4348:1;:14;;;;;;;;;;;;4327:35;;4706:17;4741:1;4726:11;:16;;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4805:1;4790:11;:16;;;:50;;;;;4839:1;4818:4;4810:25;;;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;;;;;;;;;;;;;4851:91;4968:1;4951;:14;;;:18;;;;;;;;;;;;;;;;;;4983:14;4979:67;;;5031:4;5013:1;:15;;;:22;;;;;;;;;;;;;;;;;;4979:67;1222:4:6::1;1216:3;:10;;;;;;:::i;:::-;;1241:6;1236:95;1257:8;:15;1253:1;:19;1236:95;;;1316:4;1293:7;:20;1301:8;1310:1;1301:11;;;;;;;;:::i;:::-;;;;;;;;1293:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1274:3;;;;;;;1236:95;;;;1345:20;1356:8;1345:20;;;;;;:::i;:::-;;;;;;;;5070:14:2::0;5066:101;;;5118:5;5100:1;:15;;;:23;;;;;;;;;;;;;;;;;;5142:14;5154:1;5142:14;;;;;;:::i;:::-;;;;;;;;5066:101;4092:1081;;;;;1096:276:6;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2744:368:6:-;2866:12;2891:14;2907:19;2930:79;2968:9;;2991:8;;2930:24;:79::i;:::-;2890:119;;;;3027:7;:15;3035:6;3027:15;;;;;;;;;;;;;;;;;;;;;;;;;3019:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;3099:6;3092:13;;;;2744:368;;;;;;:::o;236:180:9:-;335:4;373:36;358:51;;;:11;:51;;;;351:58;;236:180;;;:::o;430:450:8:-;593:7;727:6;755:7;794;784:18;;;;;;834:6;824:17;;;;;;658:201;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;631:242;;;;;;612:261;;430:450;;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;8737:170:2:-;8795:30;8870:21;8860:31;;8737:170;:::o;1358:696:8:-;1468:7;1477:12;1502:19;1523:14;1539:16;1583:8;;1559:78;;;;;;;:::i;:::-;1501:136;;;;;;1648:22;1672:14;1714:7;;1690:71;;;;;;;:::i;:::-;1647:114;;;;1771:14;1788:107;1815:53;1833:6;1841:7;1850:9;1861:6;1815:17;:53::i;:::-;1882:3;1788:13;:107::i;:::-;1771:124;;1937:15;1926:7;:26;;;;1905:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;2032:6;2040;2024:23;;;;;;;;;;1358:696;;;;;;;:::o;656:96:3:-;709:7;735:10;728:17;;656:96;:::o;3702:255:4:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;3941:9;3934:16;;;;;3702:255;;;;:::o;2129:766::-;2210:7;2219:12;2233:7;2276:2;2256:9;:16;:22;2252:637;;2294:9;2317;2340:7;2592:4;2581:9;2577:20;2571:27;2566:32;;2641:4;2630:9;2626:20;2620:27;2615:32;;2698:4;2687:9;2683:20;2677:27;2674:1;2669:36;2664:41;;2739:25;2750:4;2756:1;2759;2762;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;2811:1;2815:35;2860:9;:16;2852:25;;2795:83;;;;;;2129:766;;;;;;:::o;7196:532::-;7291:20;7282:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;7278:444;7327:7;7278:444;7387:29;7378:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;7374:348;;7439:23;;;;;;;;;;;;;;7374:348;7492:35;7483:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;7479:243;;7586:8;7578:17;;7550:46;;;;;;;;;;;:::i;:::-;;;;;;;;7479:243;7626:30;7617:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;7613:109;;7702:8;7679:32;;;;;;;;;;;:::i;:::-;;;;;;;;7613:109;7196:532;;;:::o;5140:1530::-;5266:7;5275:12;5289:7;6199:66;6194:1;6186:10;;:79;6182:164;;;6297:1;6301:30;6333:1;6281:54;;;;;;;;6182:164;6440:14;6457:24;6467:4;6473:1;6476;6479;6457:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6440:41;;6513:1;6495:20;;:6;:20;;;6491:113;;6547:1;6551:29;6590:1;6582:10;;6531:62;;;;;;;;;6491:113;6622:6;6630:20;6660:1;6652:10;;6614:49;;;;;;;5140:1530;;;;;;;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:101::-;2061:7;2101:18;2094:5;2090:30;2079:41;;2025:101;;;:::o;2132:120::-;2204:23;2221:5;2204:23;:::i;:::-;2197:5;2194:34;2184:62;;2242:1;2239;2232:12;2184:62;2132:120;:::o;2258:137::-;2303:5;2341:6;2328:20;2319:29;;2357:32;2383:5;2357:32;:::i;:::-;2258:137;;;;:::o;2401:117::-;2510:1;2507;2500:12;2524:117;2633:1;2630;2623:12;2647:102;2688:6;2739:2;2735:7;2730:2;2723:5;2719:14;2715:28;2705:38;;2647:102;;;:::o;2755:180::-;2803:77;2800:1;2793:88;2900:4;2897:1;2890:15;2924:4;2921:1;2914:15;2941:281;3024:27;3046:4;3024:27;:::i;:::-;3016:6;3012:40;3154:6;3142:10;3139:22;3118:18;3106:10;3103:34;3100:62;3097:88;;;3165:18;;:::i;:::-;3097:88;3205:10;3201:2;3194:22;2984:238;2941:281;;:::o;3228:129::-;3262:6;3289:20;;:::i;:::-;3279:30;;3318:33;3346:4;3338:6;3318:33;:::i;:::-;3228:129;;;:::o;3363:307::-;3424:4;3514:18;3506:6;3503:30;3500:56;;;3536:18;;:::i;:::-;3500:56;3574:29;3596:6;3574:29;:::i;:::-;3566:37;;3658:4;3652;3648:15;3640:23;;3363:307;;;:::o;3676:146::-;3773:6;3768:3;3763;3750:30;3814:1;3805:6;3800:3;3796:16;3789:27;3676:146;;;:::o;3828:423::-;3905:5;3930:65;3946:48;3987:6;3946:48;:::i;:::-;3930:65;:::i;:::-;3921:74;;4018:6;4011:5;4004:21;4056:4;4049:5;4045:16;4094:3;4085:6;4080:3;4076:16;4073:25;4070:112;;;4101:79;;:::i;:::-;4070:112;4191:54;4238:6;4233:3;4228;4191:54;:::i;:::-;3911:340;3828:423;;;;;:::o;4270:338::-;4325:5;4374:3;4367:4;4359:6;4355:17;4351:27;4341:122;;4382:79;;:::i;:::-;4341:122;4499:6;4486:20;4524:78;4598:3;4590:6;4583:4;4575:6;4571:17;4524:78;:::i;:::-;4515:87;;4331:277;4270:338;;;;:::o;4614:1119::-;4717:6;4725;4733;4741;4790:3;4778:9;4769:7;4765:23;4761:33;4758:120;;;4797:79;;:::i;:::-;4758:120;4917:1;4942:53;4987:7;4978:6;4967:9;4963:22;4942:53;:::i;:::-;4932:63;;4888:117;5044:2;5070:52;5114:7;5105:6;5094:9;5090:22;5070:52;:::i;:::-;5060:62;;5015:117;5199:2;5188:9;5184:18;5171:32;5230:18;5222:6;5219:30;5216:117;;;5252:79;;:::i;:::-;5216:117;5357:62;5411:7;5402:6;5391:9;5387:22;5357:62;:::i;:::-;5347:72;;5142:287;5496:2;5485:9;5481:18;5468:32;5527:18;5519:6;5516:30;5513:117;;;5549:79;;:::i;:::-;5513:117;5654:62;5708:7;5699:6;5688:9;5684:22;5654:62;:::i;:::-;5644:72;;5439:287;4614:1119;;;;;;;:::o;5739:77::-;5776:7;5805:5;5794:16;;5739:77;;;:::o;5822:118::-;5909:24;5927:5;5909:24;:::i;:::-;5904:3;5897:37;5822:118;;:::o;5946:222::-;6039:4;6077:2;6066:9;6062:18;6054:26;;6090:71;6158:1;6147:9;6143:17;6134:6;6090:71;:::i;:::-;5946:222;;;;:::o;6174:99::-;6226:6;6260:5;6254:12;6244:22;;6174:99;;;:::o;6279:169::-;6363:11;6397:6;6392:3;6385:19;6437:4;6432:3;6428:14;6413:29;;6279:169;;;;:::o;6454:246::-;6535:1;6545:113;6559:6;6556:1;6553:13;6545:113;;;6644:1;6639:3;6635:11;6629:18;6625:1;6620:3;6616:11;6609:39;6581:2;6578:1;6574:10;6569:15;;6545:113;;;6692:1;6683:6;6678:3;6674:16;6667:27;6516:184;6454:246;;;:::o;6706:377::-;6794:3;6822:39;6855:5;6822:39;:::i;:::-;6877:71;6941:6;6936:3;6877:71;:::i;:::-;6870:78;;6957:65;7015:6;7010:3;7003:4;6996:5;6992:16;6957:65;:::i;:::-;7047:29;7069:6;7047:29;:::i;:::-;7042:3;7038:39;7031:46;;6798:285;6706:377;;;;:::o;7089:313::-;7202:4;7240:2;7229:9;7225:18;7217:26;;7289:9;7283:4;7279:20;7275:1;7264:9;7260:17;7253:47;7317:78;7390:4;7381:6;7317:78;:::i;:::-;7309:86;;7089:313;;;;:::o;7408:329::-;7467:6;7516:2;7504:9;7495:7;7491:23;7487:32;7484:119;;;7522:79;;:::i;:::-;7484:119;7642:1;7667:53;7712:7;7703:6;7692:9;7688:22;7667:53;:::i;:::-;7657:63;;7613:117;7408:329;;;;:::o;7743:117::-;7852:1;7849;7842:12;7866:117;7975:1;7972;7965:12;8003:553;8061:8;8071:6;8121:3;8114:4;8106:6;8102:17;8098:27;8088:122;;8129:79;;:::i;:::-;8088:122;8242:6;8229:20;8219:30;;8272:18;8264:6;8261:30;8258:117;;;8294:79;;:::i;:::-;8258:117;8408:4;8400:6;8396:17;8384:29;;8462:3;8454:4;8446:6;8442:17;8432:8;8428:32;8425:41;8422:128;;;8469:79;;:::i;:::-;8422:128;8003:553;;;;;:::o;8562:529::-;8633:6;8641;8690:2;8678:9;8669:7;8665:23;8661:32;8658:119;;;8696:79;;:::i;:::-;8658:119;8844:1;8833:9;8829:17;8816:31;8874:18;8866:6;8863:30;8860:117;;;8896:79;;:::i;:::-;8860:117;9009:65;9066:7;9057:6;9046:9;9042:22;9009:65;:::i;:::-;8991:83;;;;8787:297;8562:529;;;;;:::o;9097:118::-;9184:24;9202:5;9184:24;:::i;:::-;9179:3;9172:37;9097:118;;:::o;9221:222::-;9314:4;9352:2;9341:9;9337:18;9329:26;;9365:71;9433:1;9422:9;9418:17;9409:6;9365:71;:::i;:::-;9221:222;;;;:::o;9462:552::-;9519:8;9529:6;9579:3;9572:4;9564:6;9560:17;9556:27;9546:122;;9587:79;;:::i;:::-;9546:122;9700:6;9687:20;9677:30;;9730:18;9722:6;9719:30;9716:117;;;9752:79;;:::i;:::-;9716:117;9866:4;9858:6;9854:17;9842:29;;9920:3;9912:4;9904:6;9900:17;9890:8;9886:32;9883:41;9880:128;;;9927:79;;:::i;:::-;9880:128;9462:552;;;;;:::o;10020:870::-;10110:6;10118;10126;10134;10183:2;10171:9;10162:7;10158:23;10154:32;10151:119;;;10189:79;;:::i;:::-;10151:119;10337:1;10326:9;10322:17;10309:31;10367:18;10359:6;10356:30;10353:117;;;10389:79;;:::i;:::-;10353:117;10502:64;10558:7;10549:6;10538:9;10534:22;10502:64;:::i;:::-;10484:82;;;;10280:296;10643:2;10632:9;10628:18;10615:32;10674:18;10666:6;10663:30;10660:117;;;10696:79;;:::i;:::-;10660:117;10809:64;10865:7;10856:6;10845:9;10841:22;10809:64;:::i;:::-;10791:82;;;;10586:297;10020:870;;;;;;;:::o;10896:98::-;10947:6;10981:5;10975:12;10965:22;;10896:98;;;:::o;11000:168::-;11083:11;11117:6;11112:3;11105:19;11157:4;11152:3;11148:14;11133:29;;11000:168;;;;:::o;11174:373::-;11260:3;11288:38;11320:5;11288:38;:::i;:::-;11342:70;11405:6;11400:3;11342:70;:::i;:::-;11335:77;;11421:65;11479:6;11474:3;11467:4;11460:5;11456:16;11421:65;:::i;:::-;11511:29;11533:6;11511:29;:::i;:::-;11506:3;11502:39;11495:46;;11264:283;11174:373;;;;:::o;11553:309::-;11664:4;11702:2;11691:9;11687:18;11679:26;;11751:9;11745:4;11741:20;11737:1;11726:9;11722:17;11715:47;11779:76;11850:4;11841:6;11779:76;:::i;:::-;11771:84;;11553:309;;;;:::o;11885:568::-;11958:8;11968:6;12018:3;12011:4;12003:6;11999:17;11995:27;11985:122;;12026:79;;:::i;:::-;11985:122;12139:6;12126:20;12116:30;;12169:18;12161:6;12158:30;12155:117;;;12191:79;;:::i;:::-;12155:117;12305:4;12297:6;12293:17;12281:29;;12359:3;12351:4;12343:6;12339:17;12329:8;12325:32;12322:41;12319:128;;;12366:79;;:::i;:::-;12319:128;11885:568;;;;;:::o;12459:559::-;12545:6;12553;12602:2;12590:9;12581:7;12577:23;12573:32;12570:119;;;12608:79;;:::i;:::-;12570:119;12756:1;12745:9;12741:17;12728:31;12786:18;12778:6;12775:30;12772:117;;;12808:79;;:::i;:::-;12772:117;12921:80;12993:7;12984:6;12973:9;12969:22;12921:80;:::i;:::-;12903:98;;;;12699:312;12459:559;;;;;:::o;13024:308::-;13086:4;13176:18;13168:6;13165:30;13162:56;;;13198:18;;:::i;:::-;13162:56;13236:29;13258:6;13236:29;:::i;:::-;13228:37;;13320:4;13314;13310:15;13302:23;;13024:308;;;:::o;13338:425::-;13416:5;13441:66;13457:49;13499:6;13457:49;:::i;:::-;13441:66;:::i;:::-;13432:75;;13530:6;13523:5;13516:21;13568:4;13561:5;13557:16;13606:3;13597:6;13592:3;13588:16;13585:25;13582:112;;;13613:79;;:::i;:::-;13582:112;13703:54;13750:6;13745:3;13740;13703:54;:::i;:::-;13422:341;13338:425;;;;;:::o;13783:340::-;13839:5;13888:3;13881:4;13873:6;13869:17;13865:27;13855:122;;13896:79;;:::i;:::-;13855:122;14013:6;14000:20;14038:79;14113:3;14105:6;14098:4;14090:6;14086:17;14038:79;:::i;:::-;14029:88;;13845:278;13783:340;;;;:::o;14129:311::-;14206:4;14296:18;14288:6;14285:30;14282:56;;;14318:18;;:::i;:::-;14282:56;14368:4;14360:6;14356:17;14348:25;;14428:4;14422;14418:15;14410:23;;14129:311;;;:::o;14463:710::-;14559:5;14584:81;14600:64;14657:6;14600:64;:::i;:::-;14584:81;:::i;:::-;14575:90;;14685:5;14714:6;14707:5;14700:21;14748:4;14741:5;14737:16;14730:23;;14801:4;14793:6;14789:17;14781:6;14777:30;14830:3;14822:6;14819:15;14816:122;;;14849:79;;:::i;:::-;14816:122;14964:6;14947:220;14981:6;14976:3;14973:15;14947:220;;;15056:3;15085:37;15118:3;15106:10;15085:37;:::i;:::-;15080:3;15073:50;15152:4;15147:3;15143:14;15136:21;;15023:144;15007:4;15002:3;14998:14;14991:21;;14947:220;;;14951:21;14565:608;;14463:710;;;;;:::o;15196:370::-;15267:5;15316:3;15309:4;15301:6;15297:17;15293:27;15283:122;;15324:79;;:::i;:::-;15283:122;15441:6;15428:20;15466:94;15556:3;15548:6;15541:4;15533:6;15529:17;15466:94;:::i;:::-;15457:103;;15273:293;15196:370;;;;:::o;15572:864::-;15675:6;15683;15732:2;15720:9;15711:7;15707:23;15703:32;15700:119;;;15738:79;;:::i;:::-;15700:119;15886:1;15875:9;15871:17;15858:31;15916:18;15908:6;15905:30;15902:117;;;15938:79;;:::i;:::-;15902:117;16043:63;16098:7;16089:6;16078:9;16074:22;16043:63;:::i;:::-;16033:73;;15829:287;16183:2;16172:9;16168:18;16155:32;16214:18;16206:6;16203:30;16200:117;;;16236:79;;:::i;:::-;16200:117;16341:78;16411:7;16402:6;16391:9;16387:22;16341:78;:::i;:::-;16331:88;;16126:303;15572:864;;;;;:::o;16442:180::-;16490:77;16487:1;16480:88;16587:4;16584:1;16577:15;16611:4;16608:1;16601:15;16628:320;16672:6;16709:1;16703:4;16699:12;16689:22;;16756:1;16750:4;16746:12;16777:18;16767:81;;16833:4;16825:6;16821:17;16811:27;;16767:81;16895:2;16887:6;16884:14;16864:18;16861:38;16858:84;;16914:18;;:::i;:::-;16858:84;16679:269;16628:320;;;:::o;16954:97::-;17013:6;17041:3;17031:13;;16954:97;;;;:::o;17057:141::-;17106:4;17129:3;17121:11;;17152:3;17149:1;17142:14;17186:4;17183:1;17173:18;17165:26;;17057:141;;;:::o;17204:93::-;17241:6;17288:2;17283;17276:5;17272:14;17268:23;17258:33;;17204:93;;;:::o;17303:107::-;17347:8;17397:5;17391:4;17387:16;17366:37;;17303:107;;;;:::o;17416:393::-;17485:6;17535:1;17523:10;17519:18;17558:97;17588:66;17577:9;17558:97;:::i;:::-;17676:39;17706:8;17695:9;17676:39;:::i;:::-;17664:51;;17748:4;17744:9;17737:5;17733:21;17724:30;;17797:4;17787:8;17783:19;17776:5;17773:30;17763:40;;17492:317;;17416:393;;;;;:::o;17815:77::-;17852:7;17881:5;17870:16;;17815:77;;;:::o;17898:60::-;17926:3;17947:5;17940:12;;17898:60;;;:::o;17964:142::-;18014:9;18047:53;18065:34;18074:24;18092:5;18074:24;:::i;:::-;18065:34;:::i;:::-;18047:53;:::i;:::-;18034:66;;17964:142;;;:::o;18112:75::-;18155:3;18176:5;18169:12;;18112:75;;;:::o;18193:269::-;18303:39;18334:7;18303:39;:::i;:::-;18364:91;18413:41;18437:16;18413:41;:::i;:::-;18405:6;18398:4;18392:11;18364:91;:::i;:::-;18358:4;18351:105;18269:193;18193:269;;;:::o;18468:73::-;18513:3;18468:73;:::o;18547:189::-;18624:32;;:::i;:::-;18665:65;18723:6;18715;18709:4;18665:65;:::i;:::-;18600:136;18547:189;;:::o;18742:186::-;18802:120;18819:3;18812:5;18809:14;18802:120;;;18873:39;18910:1;18903:5;18873:39;:::i;:::-;18846:1;18839:5;18835:13;18826:22;;18802:120;;;18742:186;;:::o;18934:543::-;19035:2;19030:3;19027:11;19024:446;;;19069:38;19101:5;19069:38;:::i;:::-;19153:29;19171:10;19153:29;:::i;:::-;19143:8;19139:44;19336:2;19324:10;19321:18;19318:49;;;19357:8;19342:23;;19318:49;19380:80;19436:22;19454:3;19436:22;:::i;:::-;19426:8;19422:37;19409:11;19380:80;:::i;:::-;19039:431;;19024:446;18934:543;;;:::o;19483:117::-;19537:8;19587:5;19581:4;19577:16;19556:37;;19483:117;;;;:::o;19606:169::-;19650:6;19683:51;19731:1;19727:6;19719:5;19716:1;19712:13;19683:51;:::i;:::-;19679:56;19764:4;19758;19754:15;19744:25;;19657:118;19606:169;;;;:::o;19780:295::-;19856:4;20002:29;20027:3;20021:4;20002:29;:::i;:::-;19994:37;;20064:3;20061:1;20057:11;20051:4;20048:21;20040:29;;19780:295;;;;:::o;20080:1403::-;20204:44;20244:3;20239;20204:44;:::i;:::-;20313:18;20305:6;20302:30;20299:56;;;20335:18;;:::i;:::-;20299:56;20379:38;20411:4;20405:11;20379:38;:::i;:::-;20464:67;20524:6;20516;20510:4;20464:67;:::i;:::-;20558:1;20587:2;20579:6;20576:14;20604:1;20599:632;;;;21275:1;21292:6;21289:84;;;21348:9;21343:3;21339:19;21326:33;21317:42;;21289:84;21399:67;21459:6;21452:5;21399:67;:::i;:::-;21393:4;21386:81;21248:229;20569:908;;20599:632;20651:4;20647:9;20639:6;20635:22;20685:37;20717:4;20685:37;:::i;:::-;20744:1;20758:215;20772:7;20769:1;20766:14;20758:215;;;20858:9;20853:3;20849:19;20836:33;20828:6;20821:49;20909:1;20901:6;20897:14;20887:24;;20956:2;20945:9;20941:18;20928:31;;20795:4;20792:1;20788:12;20783:17;;20758:215;;;21001:6;20992:7;20989:19;20986:186;;;21066:9;21061:3;21057:19;21044:33;21109:48;21151:4;21143:6;21139:17;21128:9;21109:48;:::i;:::-;21101:6;21094:64;21009:163;20986:186;21218:1;21214;21206:6;21202:14;21198:22;21192:4;21185:36;20606:625;;;20569:908;;20179:1304;;;20080:1403;;;:::o;21511:314::-;21607:3;21628:70;21691:6;21686:3;21628:70;:::i;:::-;21621:77;;21708:56;21757:6;21752:3;21745:5;21708:56;:::i;:::-;21789:29;21811:6;21789:29;:::i;:::-;21784:3;21780:39;21773:46;;21511:314;;;;;:::o;21831:546::-;22008:4;22046:2;22035:9;22031:18;22023:26;;22095:9;22089:4;22085:20;22081:1;22070:9;22066:17;22059:47;22123:86;22204:4;22195:6;22187;22123:86;:::i;:::-;22115:94;;22256:9;22250:4;22246:20;22241:2;22230:9;22226:18;22219:48;22284:86;22365:4;22356:6;22348;22284:86;:::i;:::-;22276:94;;21831:546;;;;;;;:::o;22383:180::-;22431:77;22428:1;22421:88;22528:4;22525:1;22518:15;22552:4;22549:1;22542:15;22569:419;22708:4;22746:2;22735:9;22731:18;22723:26;;22795:9;22789:4;22785:20;22781:1;22770:9;22766:17;22759:47;22823:76;22894:4;22885:6;22823:76;:::i;:::-;22815:84;;22909:72;22977:2;22966:9;22962:18;22953:6;22909:72;:::i;:::-;22569:419;;;;;:::o;22994:124::-;23071:6;23105:5;23099:12;23089:22;;22994:124;;;:::o;23124:194::-;23233:11;23267:6;23262:3;23255:19;23307:4;23302:3;23298:14;23283:29;;23124:194;;;;:::o;23324:142::-;23401:4;23424:3;23416:11;;23454:4;23449:3;23445:14;23437:22;;23324:142;;;:::o;23472:159::-;23546:11;23580:6;23575:3;23568:19;23620:4;23615:3;23611:14;23596:29;;23472:159;;;;:::o;23637:357::-;23715:3;23743:39;23776:5;23743:39;:::i;:::-;23798:61;23852:6;23847:3;23798:61;:::i;:::-;23791:68;;23868:65;23926:6;23921:3;23914:4;23907:5;23903:16;23868:65;:::i;:::-;23958:29;23980:6;23958:29;:::i;:::-;23953:3;23949:39;23942:46;;23719:275;23637:357;;;;:::o;24000:196::-;24089:10;24124:66;24186:3;24178:6;24124:66;:::i;:::-;24110:80;;24000:196;;;;:::o;24202:123::-;24282:4;24314;24309:3;24305:14;24297:22;;24202:123;;;:::o;24359:991::-;24498:3;24527:64;24585:5;24527:64;:::i;:::-;24607:96;24696:6;24691:3;24607:96;:::i;:::-;24600:103;;24729:3;24774:4;24766:6;24762:17;24757:3;24753:27;24804:66;24864:5;24804:66;:::i;:::-;24893:7;24924:1;24909:396;24934:6;24931:1;24928:13;24909:396;;;25005:9;24999:4;24995:20;24990:3;24983:33;25056:6;25050:13;25084:84;25163:4;25148:13;25084:84;:::i;:::-;25076:92;;25191:70;25254:6;25191:70;:::i;:::-;25181:80;;25290:4;25285:3;25281:14;25274:21;;24969:336;24956:1;24953;24949:9;24944:14;;24909:396;;;24913:14;25321:4;25314:11;;25341:3;25334:10;;24503:847;;;;;24359:991;;;;:::o;25356:115::-;25441:23;25458:5;25441:23;:::i;:::-;25436:3;25429:36;25356:115;;:::o;25477:1025::-;25786:4;25824:3;25813:9;25809:19;25801:27;;25838:71;25906:1;25895:9;25891:17;25882:6;25838:71;:::i;:::-;25956:9;25950:4;25946:20;25941:2;25930:9;25926:18;25919:48;25984:128;26107:4;26098:6;25984:128;:::i;:::-;25976:136;;26159:9;26153:4;26149:20;26144:2;26133:9;26129:18;26122:48;26187:76;26258:4;26249:6;26187:76;:::i;:::-;26179:84;;26273:70;26339:2;26328:9;26324:18;26315:6;26273:70;:::i;:::-;26391:9;26385:4;26381:20;26375:3;26364:9;26360:19;26353:49;26419:76;26490:4;26481:6;26419:76;:::i;:::-;26411:84;;25477:1025;;;;;;;;:::o;26508:184::-;26607:11;26641:6;26636:3;26629:19;26681:4;26676:3;26672:14;26657:29;;26508:184;;;;:::o;26698:102::-;26767:4;26790:3;26782:11;;26698:102;;;:::o;26806:108::-;26883:24;26901:5;26883:24;:::i;:::-;26878:3;26871:37;26806:108;;:::o;26920:179::-;26989:10;27010:46;27052:3;27044:6;27010:46;:::i;:::-;27088:4;27083:3;27079:14;27065:28;;26920:179;;;;:::o;27105:122::-;27157:5;27182:39;27217:2;27212:3;27208:12;27203:3;27182:39;:::i;:::-;27173:48;;27105:122;;;;:::o;27233:115::-;27305:4;27337;27332:3;27328:14;27320:22;;27233:115;;;:::o;27384:699::-;27513:3;27536:86;27615:6;27610:3;27536:86;:::i;:::-;27529:93;;27646:58;27698:5;27646:58;:::i;:::-;27727:7;27758:1;27743:315;27768:6;27765:1;27762:13;27743:315;;;27838:42;27873:6;27864:7;27838:42;:::i;:::-;27900:63;27959:3;27944:13;27900:63;:::i;:::-;27893:70;;27986:62;28041:6;27986:62;:::i;:::-;27976:72;;27803:255;27790:1;27787;27783:9;27778:14;;27743:315;;;27747:14;28074:3;28067:10;;27518:565;;27384:699;;;;;:::o;28089:393::-;28242:4;28280:2;28269:9;28265:18;28257:26;;28329:9;28323:4;28319:20;28315:1;28304:9;28300:17;28293:47;28357:118;28470:4;28461:6;28453;28357:118;:::i;:::-;28349:126;;28089:393;;;;;:::o;28488:1395::-;28605:37;28638:3;28605:37;:::i;:::-;28707:18;28699:6;28696:30;28693:56;;;28729:18;;:::i;:::-;28693:56;28773:38;28805:4;28799:11;28773:38;:::i;:::-;28858:67;28918:6;28910;28904:4;28858:67;:::i;:::-;28952:1;28976:4;28963:17;;29008:2;29000:6;28997:14;29025:1;29020:618;;;;29682:1;29699:6;29696:77;;;29748:9;29743:3;29739:19;29733:26;29724:35;;29696:77;29799:67;29859:6;29852:5;29799:67;:::i;:::-;29793:4;29786:81;29655:222;28990:887;;29020:618;29072:4;29068:9;29060:6;29056:22;29106:37;29138:4;29106:37;:::i;:::-;29165:1;29179:208;29193:7;29190:1;29187:14;29179:208;;;29272:9;29267:3;29263:19;29257:26;29249:6;29242:42;29323:1;29315:6;29311:14;29301:24;;29370:2;29359:9;29355:18;29342:31;;29216:4;29213:1;29209:12;29204:17;;29179:208;;;29415:6;29406:7;29403:19;29400:179;;;29473:9;29468:3;29464:19;29458:26;29516:48;29558:4;29550:6;29546:17;29535:9;29516:48;:::i;:::-;29508:6;29501:64;29423:156;29400:179;29625:1;29621;29613:6;29609:14;29605:22;29599:4;29592:36;29027:611;;;28990:887;;28580:1303;;;28488:1395;;:::o;29889:114::-;29956:6;29990:5;29984:12;29974:22;;29889:114;;;:::o;30009:132::-;30076:4;30099:3;30091:11;;30129:4;30124:3;30120:14;30112:22;;30009:132;;;:::o;30147:113::-;30217:4;30249;30244:3;30240:14;30232:22;;30147:113;;;:::o;30296:732::-;30415:3;30444:54;30492:5;30444:54;:::i;:::-;30514:86;30593:6;30588:3;30514:86;:::i;:::-;30507:93;;30624:56;30674:5;30624:56;:::i;:::-;30703:7;30734:1;30719:284;30744:6;30741:1;30738:13;30719:284;;;30820:6;30814:13;30847:63;30906:3;30891:13;30847:63;:::i;:::-;30840:70;;30933:60;30986:6;30933:60;:::i;:::-;30923:70;;30779:224;30766:1;30763;30759:9;30754:14;;30719:284;;;30723:14;31019:3;31012:10;;30420:608;;;30296:732;;;;:::o;31034:373::-;31177:4;31215:2;31204:9;31200:18;31192:26;;31264:9;31258:4;31254:20;31250:1;31239:9;31235:17;31228:47;31292:108;31395:4;31386:6;31292:108;:::i;:::-;31284:116;;31034:373;;;;:::o;31413:85::-;31458:7;31487:5;31476:16;;31413:85;;;:::o;31504:156::-;31561:9;31594:60;31611:42;31620:32;31646:5;31620:32;:::i;:::-;31611:42;:::i;:::-;31594:60;:::i;:::-;31581:73;;31504:156;;;:::o;31666:145::-;31760:44;31798:5;31760:44;:::i;:::-;31755:3;31748:57;31666:145;;:::o;31817:236::-;31917:4;31955:2;31944:9;31940:18;31932:26;;31968:78;32043:1;32032:9;32028:17;32019:6;31968:78;:::i;:::-;31817:236;;;;:::o;32059:222::-;32199:34;32195:1;32187:6;32183:14;32176:58;32268:5;32263:2;32255:6;32251:15;32244:30;32059:222;:::o;32287:366::-;32429:3;32450:67;32514:2;32509:3;32450:67;:::i;:::-;32443:74;;32526:93;32615:3;32526:93;:::i;:::-;32644:2;32639:3;32635:12;32628:19;;32287:366;;;:::o;32659:419::-;32825:4;32863:2;32852:9;32848:18;32840:26;;32912:9;32906:4;32902:20;32898:1;32887:9;32883:17;32876:47;32940:131;33066:4;32940:131;:::i;:::-;32932:139;;32659:419;;;:::o;33084:148::-;33186:11;33223:3;33208:18;;33084:148;;;;:::o;33238:214::-;33378:66;33374:1;33366:6;33362:14;33355:90;33238:214;:::o;33458:400::-;33618:3;33639:84;33721:1;33716:3;33639:84;:::i;:::-;33632:91;;33732:93;33821:3;33732:93;:::i;:::-;33850:1;33845:3;33841:11;33834:18;;33458:400;;;:::o;33864:94::-;33897:8;33945:5;33941:2;33937:14;33916:35;;33864:94;;;:::o;33964:::-;34003:7;34032:20;34046:5;34032:20;:::i;:::-;34021:31;;33964:94;;;:::o;34064:100::-;34103:7;34132:26;34152:5;34132:26;:::i;:::-;34121:37;;34064:100;;;:::o;34170:157::-;34275:45;34295:24;34313:5;34295:24;:::i;:::-;34275:45;:::i;:::-;34270:3;34263:58;34170:157;;:::o;34333:96::-;34367:8;34416:5;34411:3;34407:15;34386:36;;34333:96;;;:::o;34435:94::-;34473:7;34502:21;34517:5;34502:21;:::i;:::-;34491:32;;34435:94;;;:::o;34535:153::-;34638:43;34657:23;34674:5;34657:23;:::i;:::-;34638:43;:::i;:::-;34633:3;34626:56;34535:153;;:::o;34694:79::-;34733:7;34762:5;34751:16;;34694:79;;;:::o;34779:157::-;34884:45;34904:24;34922:5;34904:24;:::i;:::-;34884:45;:::i;:::-;34879:3;34872:58;34779:157;;:::o;34942:940::-;35237:3;35259:148;35403:3;35259:148;:::i;:::-;35252:155;;35417:75;35488:3;35479:6;35417:75;:::i;:::-;35517:2;35512:3;35508:12;35501:19;;35530:73;35599:3;35590:6;35530:73;:::i;:::-;35628:1;35623:3;35619:11;35612:18;;35640:75;35711:3;35702:6;35640:75;:::i;:::-;35740:2;35735:3;35731:12;35724:19;;35753:75;35824:3;35815:6;35753:75;:::i;:::-;35853:2;35848:3;35844:12;35837:19;;35873:3;35866:10;;34942:940;;;;;;;:::o;35888:973::-;35982:6;35990;35998;36047:2;36035:9;36026:7;36022:23;36018:32;36015:119;;;36053:79;;:::i;:::-;36015:119;36201:1;36190:9;36186:17;36173:31;36231:18;36223:6;36220:30;36217:117;;;36253:79;;:::i;:::-;36217:117;36358:62;36412:7;36403:6;36392:9;36388:22;36358:62;:::i;:::-;36348:72;;36144:286;36469:2;36495:52;36539:7;36530:6;36519:9;36515:22;36495:52;:::i;:::-;36485:62;;36440:117;36624:2;36613:9;36609:18;36596:32;36655:18;36647:6;36644:30;36641:117;;;36677:79;;:::i;:::-;36641:117;36782:62;36836:7;36827:6;36816:9;36812:22;36782:62;:::i;:::-;36772:72;;36567:287;35888:973;;;;;:::o;36867:104::-;36912:7;36941:24;36959:5;36941:24;:::i;:::-;36930:35;;36867:104;;;:::o;36977:138::-;37058:32;37084:5;37058:32;:::i;:::-;37051:5;37048:43;37038:71;;37105:1;37102;37095:12;37038:71;36977:138;:::o;37121:155::-;37175:5;37213:6;37200:20;37191:29;;37229:41;37264:5;37229:41;:::i;:::-;37121:155;;;;:::o;37282:668::-;37367:6;37375;37424:2;37412:9;37403:7;37399:23;37395:32;37392:119;;;37430:79;;:::i;:::-;37392:119;37578:1;37567:9;37563:17;37550:31;37608:18;37600:6;37597:30;37594:117;;;37630:79;;:::i;:::-;37594:117;37735:62;37789:7;37780:6;37769:9;37765:22;37735:62;:::i;:::-;37725:72;;37521:286;37846:2;37872:61;37925:7;37916:6;37905:9;37901:22;37872:61;:::i;:::-;37862:71;;37817:126;37282:668;;;;;:::o;37956:223::-;38096:34;38092:1;38084:6;38080:14;38073:58;38165:6;38160:2;38152:6;38148:15;38141:31;37956:223;:::o;38185:366::-;38327:3;38348:67;38412:2;38407:3;38348:67;:::i;:::-;38341:74;;38424:93;38513:3;38424:93;:::i;:::-;38542:2;38537:3;38533:12;38526:19;;38185:366;;;:::o;38557:419::-;38723:4;38761:2;38750:9;38746:18;38738:26;;38810:9;38804:4;38800:20;38796:1;38785:9;38781:17;38774:47;38838:131;38964:4;38838:131;:::i;:::-;38830:139;;38557:419;;;:::o;38982:180::-;39030:77;39027:1;39020:88;39127:4;39124:1;39117:15;39151:4;39148:1;39141:15;39168:118;39255:24;39273:5;39255:24;:::i;:::-;39250:3;39243:37;39168:118;;:::o;39292:222::-;39385:4;39423:2;39412:9;39408:18;39400:26;;39436:71;39504:1;39493:9;39489:17;39480:6;39436:71;:::i;:::-;39292:222;;;;:::o;39520:86::-;39555:7;39595:4;39588:5;39584:16;39573:27;;39520:86;;;:::o;39612:112::-;39695:22;39711:5;39695:22;:::i;:::-;39690:3;39683:35;39612:112;;:::o;39730:545::-;39903:4;39941:3;39930:9;39926:19;39918:27;;39955:71;40023:1;40012:9;40008:17;39999:6;39955:71;:::i;:::-;40036:68;40100:2;40089:9;40085:18;40076:6;40036:68;:::i;:::-;40114:72;40182:2;40171:9;40167:18;40158:6;40114:72;:::i;:::-;40196;40264:2;40253:9;40249:18;40240:6;40196:72;:::i;:::-;39730:545;;;;;;;:::o" + }, + "methodIdentifiers": { + "initialize(string,address[])": "a644cbdc", + "makeSignatureHash(address,uint64,bytes,bytes)": "1dcfea09", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "resolve(bytes,bytes)": "9061b923", + "resolveWithProof(bytes,bytes)": "f4d4d2f8", + "setSigners(address[])": "a3772662", + "setURL(string)": "77343408", + "signers(address)": "736c0d5b", + "supportsInterface(bytes4)": "01ffc9a7", + "transferOwnership(address)": "f2fde38b", + "url()": "5600f04f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunction\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"OffchainLookup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"}],\"name\":\"NewSigners\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_url\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"_signers\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"request\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"makeSignatureHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"resolveWithProof\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_signers\",\"type\":\"address[]\"}],\"name\":\"setSigners\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_url\",\"type\":\"string\"}],\"name\":\"setURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"url\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"resolve(bytes,bytes)\":{\"params\":{\"data\":\"The ABI encoded data for the underlying resolution function (Eg, addr(bytes32), text(bytes32,string), etc).\",\"name\":\"The DNS-encoded name to resolve.\"},\"returns\":{\"_0\":\"The return data, ABI encoded identically to the underlying function.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"resolve(bytes,bytes)\":{\"notice\":\"Resolves a name, as specified by ENSIP 10.\"},\"resolveWithProof(bytes,bytes)\":{\"notice\":\"Callback used by CCIP read compatible clients to verify and parse the response.\"},\"setSigners(address[])\":{\"notice\":\"Sets the Signers of the gateway.\"},\"setURL(string)\":{\"notice\":\"Sets the URL of the gateway.\"}},\"notice\":\"Implements an ENS resolver that directs all queries to a CCIP read gateway. Callers must implement EIP 3668 and ENSIP 10.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OffchainResolver.sol\":\"OffchainResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"contracts/IExtendedResolver.sol\":{\"keccak256\":\"0x5d81521cfae7d9a4475d27533cd8ed0d3475d369eb0674fd90ffbdbdf292faa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d244d15588785044b54c453ab6dc51c616ab70cb8b9e687d3e54565bcae97760\",\"dweb:/ipfs/QmXz4ZZBTFogdkdTV1mcE3ywvL2agKVZHLNNeRHCKVruYM\"]},\"contracts/OffchainResolver.sol\":{\"keccak256\":\"0x828073926b216d0e14c0488057aa738e53e40e2798f2c6f09e419d2a37bc8920\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9005a4425593cae6645cf7ee589f1668f684b3500945363e09a3e0e88bc1347e\",\"dweb:/ipfs/QmcLrKrkkxkjzejfUPAVkHmrSFgXpMKcKBWRfgdDvXXrsN\"]},\"contracts/SignatureVerifier.sol\":{\"keccak256\":\"0xbb4726d25480722076a692c4289c55188b46b0110cf32933076025c9855c4d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fdaaa906189879f3b57a9e7e87ba936b890b6b2bb593c66fedb98e2cb56f993\",\"dweb:/ipfs/QmbTwTG78dmCUuKtp8qPAdrGkysd1Tn9EFEQGRfJHdgZXB\"]},\"contracts/SupportsInterface.sol\":{\"keccak256\":\"0x98cdd1fdac1950916d1e2794f8ae550deda0f0a28d35d1da043273d017d5f8d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a47b737a30773359f056d16f4f4ffc4305490572546c086280eb929750d370f\",\"dweb:/ipfs/QmXsd1G8aXRAK1fmtj3yM9UUjkZR5kwctDDeZEA8Q5tHCQ\"]}},\"version\":1}" + } + }, + "contracts/OffchainResolverFactory.sol": { + "OffchainResolverFactory": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_offchainResolver", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ERC1167FailedCreateClone", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOffchainResolverAddress", + "type": "address" + } + ], + "name": "OffchainResolverCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_url", + "type": "string" + }, + { + "internalType": "address[]", + "name": "_signers", + "type": "address[]" + } + ], + "name": "createOffchainResolver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "offchainResolver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_offchainResolverAddress", + "type": "address" + } + ], + "name": "setOffchainResolverAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1190": { + "entryPoint": null, + "id": 1190, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 263, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 542, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 615, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 632, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 496, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 459, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 516, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1551:10", + "nodeType": "YulBlock", + "src": "0:1551:10", + "statements": [ + { + "body": { + "nativeSrc": "47:35:10", + "nodeType": "YulBlock", + "src": "47:35:10", + "statements": [ + { + "nativeSrc": "57:19:10", + "nodeType": "YulAssignment", + "src": "57:19:10", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:10", + "nodeType": "YulLiteral", + "src": "73:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:10", + "nodeType": "YulIdentifier", + "src": "67:5:10" + }, + "nativeSrc": "67:9:10", + "nodeType": "YulFunctionCall", + "src": "67:9:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:10", + "nodeType": "YulIdentifier", + "src": "57:6:10" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:10", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:10", + "nodeType": "YulTypedName", + "src": "40:6:10", + "type": "" + } + ], + "src": "7:75:10" + }, + { + "body": { + "nativeSrc": "177:28:10", + "nodeType": "YulBlock", + "src": "177:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:10", + "nodeType": "YulLiteral", + "src": "194:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:10", + "nodeType": "YulLiteral", + "src": "197:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:10", + "nodeType": "YulIdentifier", + "src": "187:6:10" + }, + "nativeSrc": "187:12:10", + "nodeType": "YulFunctionCall", + "src": "187:12:10" + }, + "nativeSrc": "187:12:10", + "nodeType": "YulExpressionStatement", + "src": "187:12:10" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:10", + "nodeType": "YulFunctionDefinition", + "src": "88:117:10" + }, + { + "body": { + "nativeSrc": "300:28:10", + "nodeType": "YulBlock", + "src": "300:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:10", + "nodeType": "YulLiteral", + "src": "317:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:10", + "nodeType": "YulLiteral", + "src": "320:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:10", + "nodeType": "YulIdentifier", + "src": "310:6:10" + }, + "nativeSrc": "310:12:10", + "nodeType": "YulFunctionCall", + "src": "310:12:10" + }, + "nativeSrc": "310:12:10", + "nodeType": "YulExpressionStatement", + "src": "310:12:10" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:10", + "nodeType": "YulFunctionDefinition", + "src": "211:117:10" + }, + { + "body": { + "nativeSrc": "379:81:10", + "nodeType": "YulBlock", + "src": "379:81:10", + "statements": [ + { + "nativeSrc": "389:65:10", + "nodeType": "YulAssignment", + "src": "389:65:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:10", + "nodeType": "YulIdentifier", + "src": "404:5:10" + }, + { + "kind": "number", + "nativeSrc": "411:42:10", + "nodeType": "YulLiteral", + "src": "411:42:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:10", + "nodeType": "YulIdentifier", + "src": "400:3:10" + }, + "nativeSrc": "400:54:10", + "nodeType": "YulFunctionCall", + "src": "400:54:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:10", + "nodeType": "YulIdentifier", + "src": "389:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:10", + "nodeType": "YulTypedName", + "src": "361:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:10", + "nodeType": "YulTypedName", + "src": "371:7:10", + "type": "" + } + ], + "src": "334:126:10" + }, + { + "body": { + "nativeSrc": "511:51:10", + "nodeType": "YulBlock", + "src": "511:51:10", + "statements": [ + { + "nativeSrc": "521:35:10", + "nodeType": "YulAssignment", + "src": "521:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:10", + "nodeType": "YulIdentifier", + "src": "550:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:10", + "nodeType": "YulIdentifier", + "src": "532:17:10" + }, + "nativeSrc": "532:24:10", + "nodeType": "YulFunctionCall", + "src": "532:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:10", + "nodeType": "YulIdentifier", + "src": "521:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:10", + "nodeType": "YulTypedName", + "src": "493:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:10", + "nodeType": "YulTypedName", + "src": "503:7:10", + "type": "" + } + ], + "src": "466:96:10" + }, + { + "body": { + "nativeSrc": "611:79:10", + "nodeType": "YulBlock", + "src": "611:79:10", + "statements": [ + { + "body": { + "nativeSrc": "668:16:10", + "nodeType": "YulBlock", + "src": "668:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:10", + "nodeType": "YulLiteral", + "src": "677:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:10", + "nodeType": "YulLiteral", + "src": "680:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:10", + "nodeType": "YulIdentifier", + "src": "670:6:10" + }, + "nativeSrc": "670:12:10", + "nodeType": "YulFunctionCall", + "src": "670:12:10" + }, + "nativeSrc": "670:12:10", + "nodeType": "YulExpressionStatement", + "src": "670:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:10", + "nodeType": "YulIdentifier", + "src": "634:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:10", + "nodeType": "YulIdentifier", + "src": "659:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:10", + "nodeType": "YulIdentifier", + "src": "641:17:10" + }, + "nativeSrc": "641:24:10", + "nodeType": "YulFunctionCall", + "src": "641:24:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:10", + "nodeType": "YulIdentifier", + "src": "631:2:10" + }, + "nativeSrc": "631:35:10", + "nodeType": "YulFunctionCall", + "src": "631:35:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:10", + "nodeType": "YulIdentifier", + "src": "624:6:10" + }, + "nativeSrc": "624:43:10", + "nodeType": "YulFunctionCall", + "src": "624:43:10" + }, + "nativeSrc": "621:63:10", + "nodeType": "YulIf", + "src": "621:63:10" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:10", + "nodeType": "YulTypedName", + "src": "604:5:10", + "type": "" + } + ], + "src": "568:122:10" + }, + { + "body": { + "nativeSrc": "759:80:10", + "nodeType": "YulBlock", + "src": "759:80:10", + "statements": [ + { + "nativeSrc": "769:22:10", + "nodeType": "YulAssignment", + "src": "769:22:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:10", + "nodeType": "YulIdentifier", + "src": "784:6:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:10", + "nodeType": "YulIdentifier", + "src": "778:5:10" + }, + "nativeSrc": "778:13:10", + "nodeType": "YulFunctionCall", + "src": "778:13:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:10", + "nodeType": "YulIdentifier", + "src": "769:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:10", + "nodeType": "YulIdentifier", + "src": "827:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:10", + "nodeType": "YulIdentifier", + "src": "800:26:10" + }, + "nativeSrc": "800:33:10", + "nodeType": "YulFunctionCall", + "src": "800:33:10" + }, + "nativeSrc": "800:33:10", + "nodeType": "YulExpressionStatement", + "src": "800:33:10" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:10", + "nodeType": "YulTypedName", + "src": "737:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:10", + "nodeType": "YulTypedName", + "src": "745:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:10", + "nodeType": "YulTypedName", + "src": "753:5:10", + "type": "" + } + ], + "src": "696:143:10" + }, + { + "body": { + "nativeSrc": "922:274:10", + "nodeType": "YulBlock", + "src": "922:274:10", + "statements": [ + { + "body": { + "nativeSrc": "968:83:10", + "nodeType": "YulBlock", + "src": "968:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "970:77:10", + "nodeType": "YulIdentifier", + "src": "970:77:10" + }, + "nativeSrc": "970:79:10", + "nodeType": "YulFunctionCall", + "src": "970:79:10" + }, + "nativeSrc": "970:79:10", + "nodeType": "YulExpressionStatement", + "src": "970:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "943:7:10", + "nodeType": "YulIdentifier", + "src": "943:7:10" + }, + { + "name": "headStart", + "nativeSrc": "952:9:10", + "nodeType": "YulIdentifier", + "src": "952:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "939:3:10", + "nodeType": "YulIdentifier", + "src": "939:3:10" + }, + "nativeSrc": "939:23:10", + "nodeType": "YulFunctionCall", + "src": "939:23:10" + }, + { + "kind": "number", + "nativeSrc": "964:2:10", + "nodeType": "YulLiteral", + "src": "964:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "935:3:10", + "nodeType": "YulIdentifier", + "src": "935:3:10" + }, + "nativeSrc": "935:32:10", + "nodeType": "YulFunctionCall", + "src": "935:32:10" + }, + "nativeSrc": "932:119:10", + "nodeType": "YulIf", + "src": "932:119:10" + }, + { + "nativeSrc": "1061:128:10", + "nodeType": "YulBlock", + "src": "1061:128:10", + "statements": [ + { + "nativeSrc": "1076:15:10", + "nodeType": "YulVariableDeclaration", + "src": "1076:15:10", + "value": { + "kind": "number", + "nativeSrc": "1090:1:10", + "nodeType": "YulLiteral", + "src": "1090:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1080:6:10", + "nodeType": "YulTypedName", + "src": "1080:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "1105:74:10", + "nodeType": "YulAssignment", + "src": "1105:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1151:9:10", + "nodeType": "YulIdentifier", + "src": "1151:9:10" + }, + { + "name": "offset", + "nativeSrc": "1162:6:10", + "nodeType": "YulIdentifier", + "src": "1162:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1147:3:10", + "nodeType": "YulIdentifier", + "src": "1147:3:10" + }, + "nativeSrc": "1147:22:10", + "nodeType": "YulFunctionCall", + "src": "1147:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "1171:7:10", + "nodeType": "YulIdentifier", + "src": "1171:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1115:31:10", + "nodeType": "YulIdentifier", + "src": "1115:31:10" + }, + "nativeSrc": "1115:64:10", + "nodeType": "YulFunctionCall", + "src": "1115:64:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1105:6:10", + "nodeType": "YulIdentifier", + "src": "1105:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "845:351:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "892:9:10", + "nodeType": "YulTypedName", + "src": "892:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "903:7:10", + "nodeType": "YulTypedName", + "src": "903:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "915:6:10", + "nodeType": "YulTypedName", + "src": "915:6:10", + "type": "" + } + ], + "src": "845:351:10" + }, + { + "body": { + "nativeSrc": "1267:53:10", + "nodeType": "YulBlock", + "src": "1267:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1284:3:10", + "nodeType": "YulIdentifier", + "src": "1284:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1307:5:10", + "nodeType": "YulIdentifier", + "src": "1307:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1289:17:10", + "nodeType": "YulIdentifier", + "src": "1289:17:10" + }, + "nativeSrc": "1289:24:10", + "nodeType": "YulFunctionCall", + "src": "1289:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1277:6:10", + "nodeType": "YulIdentifier", + "src": "1277:6:10" + }, + "nativeSrc": "1277:37:10", + "nodeType": "YulFunctionCall", + "src": "1277:37:10" + }, + "nativeSrc": "1277:37:10", + "nodeType": "YulExpressionStatement", + "src": "1277:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1202:118:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1255:5:10", + "nodeType": "YulTypedName", + "src": "1255:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1262:3:10", + "nodeType": "YulTypedName", + "src": "1262:3:10", + "type": "" + } + ], + "src": "1202:118:10" + }, + { + "body": { + "nativeSrc": "1424:124:10", + "nodeType": "YulBlock", + "src": "1424:124:10", + "statements": [ + { + "nativeSrc": "1434:26:10", + "nodeType": "YulAssignment", + "src": "1434:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1446:9:10", + "nodeType": "YulIdentifier", + "src": "1446:9:10" + }, + { + "kind": "number", + "nativeSrc": "1457:2:10", + "nodeType": "YulLiteral", + "src": "1457:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1442:3:10", + "nodeType": "YulIdentifier", + "src": "1442:3:10" + }, + "nativeSrc": "1442:18:10", + "nodeType": "YulFunctionCall", + "src": "1442:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1434:4:10", + "nodeType": "YulIdentifier", + "src": "1434:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1514:6:10", + "nodeType": "YulIdentifier", + "src": "1514:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1527:9:10", + "nodeType": "YulIdentifier", + "src": "1527:9:10" + }, + { + "kind": "number", + "nativeSrc": "1538:1:10", + "nodeType": "YulLiteral", + "src": "1538:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1523:3:10", + "nodeType": "YulIdentifier", + "src": "1523:3:10" + }, + "nativeSrc": "1523:17:10", + "nodeType": "YulFunctionCall", + "src": "1523:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1470:43:10", + "nodeType": "YulIdentifier", + "src": "1470:43:10" + }, + "nativeSrc": "1470:71:10", + "nodeType": "YulFunctionCall", + "src": "1470:71:10" + }, + "nativeSrc": "1470:71:10", + "nodeType": "YulExpressionStatement", + "src": "1470:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1326:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1396:9:10", + "nodeType": "YulTypedName", + "src": "1396:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1408:6:10", + "nodeType": "YulTypedName", + "src": "1408:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1419:4:10", + "nodeType": "YulTypedName", + "src": "1419:4:10", + "type": "" + } + ], + "src": "1326:222:10" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 10, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162000cb038038062000cb0833981810160405281019062000037919062000235565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a4919062000278565b60405180910390fd5b620000be816200010760201b60201c565b5080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000295565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fd82620001d0565b9050919050565b6200020f81620001f0565b81146200021b57600080fd5b50565b6000815190506200022f8162000204565b92915050565b6000602082840312156200024e576200024d620001cb565b5b60006200025e848285016200021e565b91505092915050565b6200027281620001f0565b82525050565b60006020820190506200028f600083018462000267565b92915050565b610a0b80620002a56000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631d8f29e814610067578063715018a6146100835780637c3fab9d1461008d5780638da5cb5b146100ab578063f00b6b7a146100c9578063f2fde38b146100e5575b600080fd5b610081600480360381019061007c9190610584565b610101565b005b61008b61014d565b005b610095610161565b6040516100a291906105c0565b60405180910390f35b6100b3610187565b6040516100c091906105c0565b60405180910390f35b6100e360048036038101906100de91906107e9565b6101b0565b005b6100ff60048036038101906100fa9190610584565b610288565b005b61010961030e565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61015561030e565b61015f6000610395565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006101dd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610459565b90508073ffffffffffffffffffffffffffffffffffffffff1663a644cbdc84846040518363ffffffff1660e01b815260040161021a92919061099e565b600060405180830381600087803b15801561023457600080fd5b505af1158015610248573d6000803e3d6000fd5b505050507f4500126d94fb0575f6f62aeaa53ad6d563ed80c940f50c37704c63456432543a8160405161027b91906105c0565b60405180910390a1505050565b61029061030e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103025760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016102f991906105c0565b60405180910390fd5b61030b81610395565b50565b61031661050a565b73ffffffffffffffffffffffffffffffffffffffff16610334610187565b73ffffffffffffffffffffffffffffffffffffffff16146103935761035761050a565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161038a91906105c0565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610505576040517fc2f868f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061055182610526565b9050919050565b61056181610546565b811461056c57600080fd5b50565b60008135905061057e81610558565b92915050565b60006020828403121561059a5761059961051c565b5b60006105a88482850161056f565b91505092915050565b6105ba81610546565b82525050565b60006020820190506105d560008301846105b1565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61062e826105e5565b810181811067ffffffffffffffff8211171561064d5761064c6105f6565b5b80604052505050565b6000610660610512565b905061066c8282610625565b919050565b600067ffffffffffffffff82111561068c5761068b6105f6565b5b610695826105e5565b9050602081019050919050565b82818337600083830152505050565b60006106c46106bf84610671565b610656565b9050828152602081018484840111156106e0576106df6105e0565b5b6106eb8482856106a2565b509392505050565b600082601f830112610708576107076105db565b5b81356107188482602086016106b1565b91505092915050565b600067ffffffffffffffff82111561073c5761073b6105f6565b5b602082029050602081019050919050565b600080fd5b600061076561076084610721565b610656565b905080838252602082019050602084028301858111156107885761078761074d565b5b835b818110156107b1578061079d888261056f565b84526020840193505060208101905061078a565b5050509392505050565b600082601f8301126107d0576107cf6105db565b5b81356107e0848260208601610752565b91505092915050565b60008060408385031215610800576107ff61051c565b5b600083013567ffffffffffffffff81111561081e5761081d610521565b5b61082a858286016106f3565b925050602083013567ffffffffffffffff81111561084b5761084a610521565b5b610857858286016107bb565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561089b578082015181840152602081019050610880565b60008484015250505050565b60006108b282610861565b6108bc818561086c565b93506108cc81856020860161087d565b6108d5816105e5565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61091581610546565b82525050565b6000610927838361090c565b60208301905092915050565b6000602082019050919050565b600061094b826108e0565b61095581856108eb565b9350610960836108fc565b8060005b83811015610991578151610978888261091b565b975061098383610933565b925050600181019050610964565b5085935050505092915050565b600060408201905081810360008301526109b881856108a7565b905081810360208301526109cc8184610940565b9050939250505056fea2646970667358221220854a33be93cc06ef7ce097464fcf2eea51bbc441dfe2d4facf0e7283af86c72064736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xCB0 CODESIZE SUB DUP1 PUSH3 0xCB0 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x235 JUMP JUMPDEST CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0xAD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xA4 SWAP2 SWAP1 PUSH3 0x278 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0xBE DUP2 PUSH3 0x107 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH3 0x295 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1FD DUP3 PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x20F DUP2 PUSH3 0x1F0 JUMP JUMPDEST DUP2 EQ PUSH3 0x21B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x22F DUP2 PUSH3 0x204 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x24E JUMPI PUSH3 0x24D PUSH3 0x1CB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x25E DUP5 DUP3 DUP6 ADD PUSH3 0x21E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x272 DUP2 PUSH3 0x1F0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x28F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x267 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA0B DUP1 PUSH3 0x2A5 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1D8F29E8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x7C3FAB9D EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xF00B6B7A EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x8B PUSH2 0x14D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x187 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0x7E9 JUMP JUMPDEST PUSH2 0x1B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH2 0x288 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x30E JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x155 PUSH2 0x30E JUMP JUMPDEST PUSH2 0x15F PUSH1 0x0 PUSH2 0x395 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DD PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x459 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA644CBDC DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21A SWAP3 SWAP2 SWAP1 PUSH2 0x99E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x248 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x4500126D94FB0575F6F62AEAA53AD6D563ED80C940F50C37704C63456432543A DUP2 PUSH1 0x40 MLOAD PUSH2 0x27B SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x290 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x302 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F9 SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x395 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x316 PUSH2 0x50A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x334 PUSH2 0x187 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x393 JUMPI PUSH2 0x357 PUSH2 0x50A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38A SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH23 0x3D602D80600A3D3981F3363D3D373D3D3D363D73000000 DUP3 PUSH1 0x60 SHL PUSH1 0xE8 SHR OR PUSH1 0x0 MSTORE PUSH15 0x5AF43D82803E903D91602B57FD5BF3 DUP3 PUSH1 0x78 SHL OR PUSH1 0x20 MSTORE PUSH1 0x37 PUSH1 0x9 PUSH1 0x0 CREATE SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x505 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2F868F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x551 DUP3 PUSH2 0x526 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x561 DUP2 PUSH2 0x546 JUMP JUMPDEST DUP2 EQ PUSH2 0x56C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x57E DUP2 PUSH2 0x558 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59A JUMPI PUSH2 0x599 PUSH2 0x51C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5A8 DUP5 DUP3 DUP6 ADD PUSH2 0x56F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5BA DUP2 PUSH2 0x546 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5D5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0x62E DUP3 PUSH2 0x5E5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x64D JUMPI PUSH2 0x64C PUSH2 0x5F6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 PUSH2 0x512 JUMP JUMPDEST SWAP1 POP PUSH2 0x66C DUP3 DUP3 PUSH2 0x625 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x68C JUMPI PUSH2 0x68B PUSH2 0x5F6 JUMP JUMPDEST JUMPDEST PUSH2 0x695 DUP3 PUSH2 0x5E5 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 0x6C4 PUSH2 0x6BF DUP5 PUSH2 0x671 JUMP JUMPDEST PUSH2 0x656 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x6E0 JUMPI PUSH2 0x6DF PUSH2 0x5E0 JUMP JUMPDEST JUMPDEST PUSH2 0x6EB DUP5 DUP3 DUP6 PUSH2 0x6A2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x708 JUMPI PUSH2 0x707 PUSH2 0x5DB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x718 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x73C JUMPI PUSH2 0x73B PUSH2 0x5F6 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 0x765 PUSH2 0x760 DUP5 PUSH2 0x721 JUMP JUMPDEST PUSH2 0x656 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 0x788 JUMPI PUSH2 0x787 PUSH2 0x74D JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B1 JUMPI DUP1 PUSH2 0x79D DUP9 DUP3 PUSH2 0x56F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78A JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7D0 JUMPI PUSH2 0x7CF PUSH2 0x5DB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7E0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x752 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x800 JUMPI PUSH2 0x7FF PUSH2 0x51C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x81E JUMPI PUSH2 0x81D PUSH2 0x521 JUMP JUMPDEST JUMPDEST PUSH2 0x82A DUP6 DUP3 DUP7 ADD PUSH2 0x6F3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x84B JUMPI PUSH2 0x84A PUSH2 0x521 JUMP JUMPDEST JUMPDEST PUSH2 0x857 DUP6 DUP3 DUP7 ADD PUSH2 0x7BB 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x89B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x880 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B2 DUP3 PUSH2 0x861 JUMP JUMPDEST PUSH2 0x8BC DUP2 DUP6 PUSH2 0x86C JUMP JUMPDEST SWAP4 POP PUSH2 0x8CC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x87D JUMP JUMPDEST PUSH2 0x8D5 DUP2 PUSH2 0x5E5 JUMP JUMPDEST DUP5 ADD 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x915 DUP2 PUSH2 0x546 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 DUP4 DUP4 PUSH2 0x90C 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 0x94B DUP3 PUSH2 0x8E0 JUMP JUMPDEST PUSH2 0x955 DUP2 DUP6 PUSH2 0x8EB JUMP JUMPDEST SWAP4 POP PUSH2 0x960 DUP4 PUSH2 0x8FC JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x991 JUMPI DUP2 MLOAD PUSH2 0x978 DUP9 DUP3 PUSH2 0x91B JUMP JUMPDEST SWAP8 POP PUSH2 0x983 DUP4 PUSH2 0x933 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x964 JUMP JUMPDEST POP DUP6 SWAP4 POP 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 0x9B8 DUP2 DUP6 PUSH2 0x8A7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9CC DUP2 DUP5 PUSH2 0x940 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 BLOBBASEFEE CALLER 0xBE SWAP4 0xCC MOD 0xEF PUSH29 0xE097464FCF2EEA51BBC441DFE2D4FACF0E7283AF86C72064736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "195:689:7:-:0;;;356:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;403:10;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;444:17:7::1;425:16;;:36;;;;;;;;;;;;;;;;;;356:112:::0;195:689;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;88:117:10:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;195:689:7:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_checkOwner_84": { + "entryPoint": 782, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_msgSender_498": { + "entryPoint": 1290, + "id": 498, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transferOwnership_146": { + "entryPoint": 917, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@clone_174": { + "entryPoint": 1113, + "id": 174, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@createOffchainResolver_1230": { + "entryPoint": 432, + "id": 1230, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@offchainResolver_1172": { + "entryPoint": 353, + "id": 1172, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@owner_67": { + "entryPoint": 391, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 333, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setOffchainResolverAddress_1202": { + "entryPoint": 257, + "id": 1202, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transferOwnership_126": { + "entryPoint": 648, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 1874, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 1713, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 1391, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 1979, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 1779, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 1412, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 2025, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_address_to_t_address": { + "entryPoint": 2331, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address": { + "entryPoint": 2316, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1457, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 2368, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2215, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1472, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_string_memory_ptr_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 2462, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 1622, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 1298, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 1825, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 1649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 2300, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 2272, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2145, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 2355, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 2283, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2156, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 1350, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1318, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 1698, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2173, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 1573, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 1526, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 1499, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 1869, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 1504, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 1313, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1308, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 1509, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 1368, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:9309:10", + "nodeType": "YulBlock", + "src": "0:9309:10", + "statements": [ + { + "body": { + "nativeSrc": "47:35:10", + "nodeType": "YulBlock", + "src": "47:35:10", + "statements": [ + { + "nativeSrc": "57:19:10", + "nodeType": "YulAssignment", + "src": "57:19:10", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:10", + "nodeType": "YulLiteral", + "src": "73:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:10", + "nodeType": "YulIdentifier", + "src": "67:5:10" + }, + "nativeSrc": "67:9:10", + "nodeType": "YulFunctionCall", + "src": "67:9:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:10", + "nodeType": "YulIdentifier", + "src": "57:6:10" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:10", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:10", + "nodeType": "YulTypedName", + "src": "40:6:10", + "type": "" + } + ], + "src": "7:75:10" + }, + { + "body": { + "nativeSrc": "177:28:10", + "nodeType": "YulBlock", + "src": "177:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:10", + "nodeType": "YulLiteral", + "src": "194:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:10", + "nodeType": "YulLiteral", + "src": "197:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:10", + "nodeType": "YulIdentifier", + "src": "187:6:10" + }, + "nativeSrc": "187:12:10", + "nodeType": "YulFunctionCall", + "src": "187:12:10" + }, + "nativeSrc": "187:12:10", + "nodeType": "YulExpressionStatement", + "src": "187:12:10" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:10", + "nodeType": "YulFunctionDefinition", + "src": "88:117:10" + }, + { + "body": { + "nativeSrc": "300:28:10", + "nodeType": "YulBlock", + "src": "300:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:10", + "nodeType": "YulLiteral", + "src": "317:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:10", + "nodeType": "YulLiteral", + "src": "320:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:10", + "nodeType": "YulIdentifier", + "src": "310:6:10" + }, + "nativeSrc": "310:12:10", + "nodeType": "YulFunctionCall", + "src": "310:12:10" + }, + "nativeSrc": "310:12:10", + "nodeType": "YulExpressionStatement", + "src": "310:12:10" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:10", + "nodeType": "YulFunctionDefinition", + "src": "211:117:10" + }, + { + "body": { + "nativeSrc": "379:81:10", + "nodeType": "YulBlock", + "src": "379:81:10", + "statements": [ + { + "nativeSrc": "389:65:10", + "nodeType": "YulAssignment", + "src": "389:65:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:10", + "nodeType": "YulIdentifier", + "src": "404:5:10" + }, + { + "kind": "number", + "nativeSrc": "411:42:10", + "nodeType": "YulLiteral", + "src": "411:42:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:10", + "nodeType": "YulIdentifier", + "src": "400:3:10" + }, + "nativeSrc": "400:54:10", + "nodeType": "YulFunctionCall", + "src": "400:54:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:10", + "nodeType": "YulIdentifier", + "src": "389:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:10", + "nodeType": "YulTypedName", + "src": "361:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:10", + "nodeType": "YulTypedName", + "src": "371:7:10", + "type": "" + } + ], + "src": "334:126:10" + }, + { + "body": { + "nativeSrc": "511:51:10", + "nodeType": "YulBlock", + "src": "511:51:10", + "statements": [ + { + "nativeSrc": "521:35:10", + "nodeType": "YulAssignment", + "src": "521:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:10", + "nodeType": "YulIdentifier", + "src": "550:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:10", + "nodeType": "YulIdentifier", + "src": "532:17:10" + }, + "nativeSrc": "532:24:10", + "nodeType": "YulFunctionCall", + "src": "532:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:10", + "nodeType": "YulIdentifier", + "src": "521:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:10", + "nodeType": "YulTypedName", + "src": "493:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:10", + "nodeType": "YulTypedName", + "src": "503:7:10", + "type": "" + } + ], + "src": "466:96:10" + }, + { + "body": { + "nativeSrc": "611:79:10", + "nodeType": "YulBlock", + "src": "611:79:10", + "statements": [ + { + "body": { + "nativeSrc": "668:16:10", + "nodeType": "YulBlock", + "src": "668:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:10", + "nodeType": "YulLiteral", + "src": "677:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:10", + "nodeType": "YulLiteral", + "src": "680:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:10", + "nodeType": "YulIdentifier", + "src": "670:6:10" + }, + "nativeSrc": "670:12:10", + "nodeType": "YulFunctionCall", + "src": "670:12:10" + }, + "nativeSrc": "670:12:10", + "nodeType": "YulExpressionStatement", + "src": "670:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:10", + "nodeType": "YulIdentifier", + "src": "634:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:10", + "nodeType": "YulIdentifier", + "src": "659:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:10", + "nodeType": "YulIdentifier", + "src": "641:17:10" + }, + "nativeSrc": "641:24:10", + "nodeType": "YulFunctionCall", + "src": "641:24:10" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:10", + "nodeType": "YulIdentifier", + "src": "631:2:10" + }, + "nativeSrc": "631:35:10", + "nodeType": "YulFunctionCall", + "src": "631:35:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:10", + "nodeType": "YulIdentifier", + "src": "624:6:10" + }, + "nativeSrc": "624:43:10", + "nodeType": "YulFunctionCall", + "src": "624:43:10" + }, + "nativeSrc": "621:63:10", + "nodeType": "YulIf", + "src": "621:63:10" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:10", + "nodeType": "YulTypedName", + "src": "604:5:10", + "type": "" + } + ], + "src": "568:122:10" + }, + { + "body": { + "nativeSrc": "748:87:10", + "nodeType": "YulBlock", + "src": "748:87:10", + "statements": [ + { + "nativeSrc": "758:29:10", + "nodeType": "YulAssignment", + "src": "758:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "780:6:10", + "nodeType": "YulIdentifier", + "src": "780:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "767:12:10", + "nodeType": "YulIdentifier", + "src": "767:12:10" + }, + "nativeSrc": "767:20:10", + "nodeType": "YulFunctionCall", + "src": "767:20:10" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "758:5:10", + "nodeType": "YulIdentifier", + "src": "758:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "823:5:10", + "nodeType": "YulIdentifier", + "src": "823:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "796:26:10", + "nodeType": "YulIdentifier", + "src": "796:26:10" + }, + "nativeSrc": "796:33:10", + "nodeType": "YulFunctionCall", + "src": "796:33:10" + }, + "nativeSrc": "796:33:10", + "nodeType": "YulExpressionStatement", + "src": "796:33:10" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "696:139:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "726:6:10", + "nodeType": "YulTypedName", + "src": "726:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "734:3:10", + "nodeType": "YulTypedName", + "src": "734:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "742:5:10", + "nodeType": "YulTypedName", + "src": "742:5:10", + "type": "" + } + ], + "src": "696:139:10" + }, + { + "body": { + "nativeSrc": "907:263:10", + "nodeType": "YulBlock", + "src": "907:263:10", + "statements": [ + { + "body": { + "nativeSrc": "953:83:10", + "nodeType": "YulBlock", + "src": "953:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "955:77:10", + "nodeType": "YulIdentifier", + "src": "955:77:10" + }, + "nativeSrc": "955:79:10", + "nodeType": "YulFunctionCall", + "src": "955:79:10" + }, + "nativeSrc": "955:79:10", + "nodeType": "YulExpressionStatement", + "src": "955:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "928:7:10", + "nodeType": "YulIdentifier", + "src": "928:7:10" + }, + { + "name": "headStart", + "nativeSrc": "937:9:10", + "nodeType": "YulIdentifier", + "src": "937:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "924:3:10", + "nodeType": "YulIdentifier", + "src": "924:3:10" + }, + "nativeSrc": "924:23:10", + "nodeType": "YulFunctionCall", + "src": "924:23:10" + }, + { + "kind": "number", + "nativeSrc": "949:2:10", + "nodeType": "YulLiteral", + "src": "949:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "920:3:10", + "nodeType": "YulIdentifier", + "src": "920:3:10" + }, + "nativeSrc": "920:32:10", + "nodeType": "YulFunctionCall", + "src": "920:32:10" + }, + "nativeSrc": "917:119:10", + "nodeType": "YulIf", + "src": "917:119:10" + }, + { + "nativeSrc": "1046:117:10", + "nodeType": "YulBlock", + "src": "1046:117:10", + "statements": [ + { + "nativeSrc": "1061:15:10", + "nodeType": "YulVariableDeclaration", + "src": "1061:15:10", + "value": { + "kind": "number", + "nativeSrc": "1075:1:10", + "nodeType": "YulLiteral", + "src": "1075:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1065:6:10", + "nodeType": "YulTypedName", + "src": "1065:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "1090:63:10", + "nodeType": "YulAssignment", + "src": "1090:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1125:9:10", + "nodeType": "YulIdentifier", + "src": "1125:9:10" + }, + { + "name": "offset", + "nativeSrc": "1136:6:10", + "nodeType": "YulIdentifier", + "src": "1136:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1121:3:10", + "nodeType": "YulIdentifier", + "src": "1121:3:10" + }, + "nativeSrc": "1121:22:10", + "nodeType": "YulFunctionCall", + "src": "1121:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "1145:7:10", + "nodeType": "YulIdentifier", + "src": "1145:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1100:20:10", + "nodeType": "YulIdentifier", + "src": "1100:20:10" + }, + "nativeSrc": "1100:53:10", + "nodeType": "YulFunctionCall", + "src": "1100:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1090:6:10", + "nodeType": "YulIdentifier", + "src": "1090:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "841:329:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "877:9:10", + "nodeType": "YulTypedName", + "src": "877:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "888:7:10", + "nodeType": "YulTypedName", + "src": "888:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "900:6:10", + "nodeType": "YulTypedName", + "src": "900:6:10", + "type": "" + } + ], + "src": "841:329:10" + }, + { + "body": { + "nativeSrc": "1241:53:10", + "nodeType": "YulBlock", + "src": "1241:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1258:3:10", + "nodeType": "YulIdentifier", + "src": "1258:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1281:5:10", + "nodeType": "YulIdentifier", + "src": "1281:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1263:17:10", + "nodeType": "YulIdentifier", + "src": "1263:17:10" + }, + "nativeSrc": "1263:24:10", + "nodeType": "YulFunctionCall", + "src": "1263:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1251:6:10", + "nodeType": "YulIdentifier", + "src": "1251:6:10" + }, + "nativeSrc": "1251:37:10", + "nodeType": "YulFunctionCall", + "src": "1251:37:10" + }, + "nativeSrc": "1251:37:10", + "nodeType": "YulExpressionStatement", + "src": "1251:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1176:118:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1229:5:10", + "nodeType": "YulTypedName", + "src": "1229:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1236:3:10", + "nodeType": "YulTypedName", + "src": "1236:3:10", + "type": "" + } + ], + "src": "1176:118:10" + }, + { + "body": { + "nativeSrc": "1398:124:10", + "nodeType": "YulBlock", + "src": "1398:124:10", + "statements": [ + { + "nativeSrc": "1408:26:10", + "nodeType": "YulAssignment", + "src": "1408:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1420:9:10", + "nodeType": "YulIdentifier", + "src": "1420:9:10" + }, + { + "kind": "number", + "nativeSrc": "1431:2:10", + "nodeType": "YulLiteral", + "src": "1431:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1416:3:10", + "nodeType": "YulIdentifier", + "src": "1416:3:10" + }, + "nativeSrc": "1416:18:10", + "nodeType": "YulFunctionCall", + "src": "1416:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1408:4:10", + "nodeType": "YulIdentifier", + "src": "1408:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1488:6:10", + "nodeType": "YulIdentifier", + "src": "1488:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1501:9:10", + "nodeType": "YulIdentifier", + "src": "1501:9:10" + }, + { + "kind": "number", + "nativeSrc": "1512:1:10", + "nodeType": "YulLiteral", + "src": "1512:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1497:3:10", + "nodeType": "YulIdentifier", + "src": "1497:3:10" + }, + "nativeSrc": "1497:17:10", + "nodeType": "YulFunctionCall", + "src": "1497:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1444:43:10", + "nodeType": "YulIdentifier", + "src": "1444:43:10" + }, + "nativeSrc": "1444:71:10", + "nodeType": "YulFunctionCall", + "src": "1444:71:10" + }, + "nativeSrc": "1444:71:10", + "nodeType": "YulExpressionStatement", + "src": "1444:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1300:222:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1370:9:10", + "nodeType": "YulTypedName", + "src": "1370:9:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1382:6:10", + "nodeType": "YulTypedName", + "src": "1382:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1393:4:10", + "nodeType": "YulTypedName", + "src": "1393:4:10", + "type": "" + } + ], + "src": "1300:222:10" + }, + { + "body": { + "nativeSrc": "1617:28:10", + "nodeType": "YulBlock", + "src": "1617:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1634:1:10", + "nodeType": "YulLiteral", + "src": "1634:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1637:1:10", + "nodeType": "YulLiteral", + "src": "1637:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1627:6:10", + "nodeType": "YulIdentifier", + "src": "1627:6:10" + }, + "nativeSrc": "1627:12:10", + "nodeType": "YulFunctionCall", + "src": "1627:12:10" + }, + "nativeSrc": "1627:12:10", + "nodeType": "YulExpressionStatement", + "src": "1627:12:10" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "1528:117:10", + "nodeType": "YulFunctionDefinition", + "src": "1528:117:10" + }, + { + "body": { + "nativeSrc": "1740:28:10", + "nodeType": "YulBlock", + "src": "1740:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1757:1:10", + "nodeType": "YulLiteral", + "src": "1757:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1760:1:10", + "nodeType": "YulLiteral", + "src": "1760:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1750:6:10", + "nodeType": "YulIdentifier", + "src": "1750:6:10" + }, + "nativeSrc": "1750:12:10", + "nodeType": "YulFunctionCall", + "src": "1750:12:10" + }, + "nativeSrc": "1750:12:10", + "nodeType": "YulExpressionStatement", + "src": "1750:12:10" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "1651:117:10", + "nodeType": "YulFunctionDefinition", + "src": "1651:117:10" + }, + { + "body": { + "nativeSrc": "1822:54:10", + "nodeType": "YulBlock", + "src": "1822:54:10", + "statements": [ + { + "nativeSrc": "1832:38:10", + "nodeType": "YulAssignment", + "src": "1832:38:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1850:5:10", + "nodeType": "YulIdentifier", + "src": "1850:5:10" + }, + { + "kind": "number", + "nativeSrc": "1857:2:10", + "nodeType": "YulLiteral", + "src": "1857:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1846:3:10", + "nodeType": "YulIdentifier", + "src": "1846:3:10" + }, + "nativeSrc": "1846:14:10", + "nodeType": "YulFunctionCall", + "src": "1846:14:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1866:2:10", + "nodeType": "YulLiteral", + "src": "1866:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1862:3:10", + "nodeType": "YulIdentifier", + "src": "1862:3:10" + }, + "nativeSrc": "1862:7:10", + "nodeType": "YulFunctionCall", + "src": "1862:7:10" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1842:3:10", + "nodeType": "YulIdentifier", + "src": "1842:3:10" + }, + "nativeSrc": "1842:28:10", + "nodeType": "YulFunctionCall", + "src": "1842:28:10" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1832:6:10", + "nodeType": "YulIdentifier", + "src": "1832:6:10" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "1774:102:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1805:5:10", + "nodeType": "YulTypedName", + "src": "1805:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "1815:6:10", + "nodeType": "YulTypedName", + "src": "1815:6:10", + "type": "" + } + ], + "src": "1774:102:10" + }, + { + "body": { + "nativeSrc": "1910:152:10", + "nodeType": "YulBlock", + "src": "1910:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1927:1:10", + "nodeType": "YulLiteral", + "src": "1927:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1930:77:10", + "nodeType": "YulLiteral", + "src": "1930:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1920:6:10", + "nodeType": "YulIdentifier", + "src": "1920:6:10" + }, + "nativeSrc": "1920:88:10", + "nodeType": "YulFunctionCall", + "src": "1920:88:10" + }, + "nativeSrc": "1920:88:10", + "nodeType": "YulExpressionStatement", + "src": "1920:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2024:1:10", + "nodeType": "YulLiteral", + "src": "2024:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2027:4:10", + "nodeType": "YulLiteral", + "src": "2027:4:10", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2017:6:10", + "nodeType": "YulIdentifier", + "src": "2017:6:10" + }, + "nativeSrc": "2017:15:10", + "nodeType": "YulFunctionCall", + "src": "2017:15:10" + }, + "nativeSrc": "2017:15:10", + "nodeType": "YulExpressionStatement", + "src": "2017:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2048:1:10", + "nodeType": "YulLiteral", + "src": "2048:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2051:4:10", + "nodeType": "YulLiteral", + "src": "2051:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2041:6:10", + "nodeType": "YulIdentifier", + "src": "2041:6:10" + }, + "nativeSrc": "2041:15:10", + "nodeType": "YulFunctionCall", + "src": "2041:15:10" + }, + "nativeSrc": "2041:15:10", + "nodeType": "YulExpressionStatement", + "src": "2041:15:10" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "1882:180:10", + "nodeType": "YulFunctionDefinition", + "src": "1882:180:10" + }, + { + "body": { + "nativeSrc": "2111:238:10", + "nodeType": "YulBlock", + "src": "2111:238:10", + "statements": [ + { + "nativeSrc": "2121:58:10", + "nodeType": "YulVariableDeclaration", + "src": "2121:58:10", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2143:6:10", + "nodeType": "YulIdentifier", + "src": "2143:6:10" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "2173:4:10", + "nodeType": "YulIdentifier", + "src": "2173:4:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2151:21:10", + "nodeType": "YulIdentifier", + "src": "2151:21:10" + }, + "nativeSrc": "2151:27:10", + "nodeType": "YulFunctionCall", + "src": "2151:27:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2139:3:10", + "nodeType": "YulIdentifier", + "src": "2139:3:10" + }, + "nativeSrc": "2139:40:10", + "nodeType": "YulFunctionCall", + "src": "2139:40:10" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "2125:10:10", + "nodeType": "YulTypedName", + "src": "2125:10:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2290:22:10", + "nodeType": "YulBlock", + "src": "2290:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2292:16:10", + "nodeType": "YulIdentifier", + "src": "2292:16:10" + }, + "nativeSrc": "2292:18:10", + "nodeType": "YulFunctionCall", + "src": "2292:18:10" + }, + "nativeSrc": "2292:18:10", + "nodeType": "YulExpressionStatement", + "src": "2292:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "2233:10:10", + "nodeType": "YulIdentifier", + "src": "2233:10:10" + }, + { + "kind": "number", + "nativeSrc": "2245:18:10", + "nodeType": "YulLiteral", + "src": "2245:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2230:2:10", + "nodeType": "YulIdentifier", + "src": "2230:2:10" + }, + "nativeSrc": "2230:34:10", + "nodeType": "YulFunctionCall", + "src": "2230:34:10" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "2269:10:10", + "nodeType": "YulIdentifier", + "src": "2269:10:10" + }, + { + "name": "memPtr", + "nativeSrc": "2281:6:10", + "nodeType": "YulIdentifier", + "src": "2281:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2266:2:10", + "nodeType": "YulIdentifier", + "src": "2266:2:10" + }, + "nativeSrc": "2266:22:10", + "nodeType": "YulFunctionCall", + "src": "2266:22:10" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2227:2:10", + "nodeType": "YulIdentifier", + "src": "2227:2:10" + }, + "nativeSrc": "2227:62:10", + "nodeType": "YulFunctionCall", + "src": "2227:62:10" + }, + "nativeSrc": "2224:88:10", + "nodeType": "YulIf", + "src": "2224:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2328:2:10", + "nodeType": "YulLiteral", + "src": "2328:2:10", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "2332:10:10", + "nodeType": "YulIdentifier", + "src": "2332:10:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2321:6:10", + "nodeType": "YulIdentifier", + "src": "2321:6:10" + }, + "nativeSrc": "2321:22:10", + "nodeType": "YulFunctionCall", + "src": "2321:22:10" + }, + "nativeSrc": "2321:22:10", + "nodeType": "YulExpressionStatement", + "src": "2321:22:10" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "2068:281:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "2097:6:10", + "nodeType": "YulTypedName", + "src": "2097:6:10", + "type": "" + }, + { + "name": "size", + "nativeSrc": "2105:4:10", + "nodeType": "YulTypedName", + "src": "2105:4:10", + "type": "" + } + ], + "src": "2068:281:10" + }, + { + "body": { + "nativeSrc": "2396:88:10", + "nodeType": "YulBlock", + "src": "2396:88:10", + "statements": [ + { + "nativeSrc": "2406:30:10", + "nodeType": "YulAssignment", + "src": "2406:30:10", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "2416:18:10", + "nodeType": "YulIdentifier", + "src": "2416:18:10" + }, + "nativeSrc": "2416:20:10", + "nodeType": "YulFunctionCall", + "src": "2416:20:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "2406:6:10", + "nodeType": "YulIdentifier", + "src": "2406:6:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2465:6:10", + "nodeType": "YulIdentifier", + "src": "2465:6:10" + }, + { + "name": "size", + "nativeSrc": "2473:4:10", + "nodeType": "YulIdentifier", + "src": "2473:4:10" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "2445:19:10", + "nodeType": "YulIdentifier", + "src": "2445:19:10" + }, + "nativeSrc": "2445:33:10", + "nodeType": "YulFunctionCall", + "src": "2445:33:10" + }, + "nativeSrc": "2445:33:10", + "nodeType": "YulExpressionStatement", + "src": "2445:33:10" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "2355:129:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "2380:4:10", + "nodeType": "YulTypedName", + "src": "2380:4:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "2389:6:10", + "nodeType": "YulTypedName", + "src": "2389:6:10", + "type": "" + } + ], + "src": "2355:129:10" + }, + { + "body": { + "nativeSrc": "2557:241:10", + "nodeType": "YulBlock", + "src": "2557:241:10", + "statements": [ + { + "body": { + "nativeSrc": "2662:22:10", + "nodeType": "YulBlock", + "src": "2662:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2664:16:10", + "nodeType": "YulIdentifier", + "src": "2664:16:10" + }, + "nativeSrc": "2664:18:10", + "nodeType": "YulFunctionCall", + "src": "2664:18:10" + }, + "nativeSrc": "2664:18:10", + "nodeType": "YulExpressionStatement", + "src": "2664:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2634:6:10", + "nodeType": "YulIdentifier", + "src": "2634:6:10" + }, + { + "kind": "number", + "nativeSrc": "2642:18:10", + "nodeType": "YulLiteral", + "src": "2642:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2631:2:10", + "nodeType": "YulIdentifier", + "src": "2631:2:10" + }, + "nativeSrc": "2631:30:10", + "nodeType": "YulFunctionCall", + "src": "2631:30:10" + }, + "nativeSrc": "2628:56:10", + "nodeType": "YulIf", + "src": "2628:56:10" + }, + { + "nativeSrc": "2694:37:10", + "nodeType": "YulAssignment", + "src": "2694:37:10", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2724:6:10", + "nodeType": "YulIdentifier", + "src": "2724:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2702:21:10", + "nodeType": "YulIdentifier", + "src": "2702:21:10" + }, + "nativeSrc": "2702:29:10", + "nodeType": "YulFunctionCall", + "src": "2702:29:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2694:4:10", + "nodeType": "YulIdentifier", + "src": "2694:4:10" + } + ] + }, + { + "nativeSrc": "2768:23:10", + "nodeType": "YulAssignment", + "src": "2768:23:10", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "2780:4:10", + "nodeType": "YulIdentifier", + "src": "2780:4:10" + }, + { + "kind": "number", + "nativeSrc": "2786:4:10", + "nodeType": "YulLiteral", + "src": "2786:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2776:3:10", + "nodeType": "YulIdentifier", + "src": "2776:3:10" + }, + "nativeSrc": "2776:15:10", + "nodeType": "YulFunctionCall", + "src": "2776:15:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2768:4:10", + "nodeType": "YulIdentifier", + "src": "2768:4:10" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "2490:308:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "2541:6:10", + "nodeType": "YulTypedName", + "src": "2541:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "2552:4:10", + "nodeType": "YulTypedName", + "src": "2552:4:10", + "type": "" + } + ], + "src": "2490:308:10" + }, + { + "body": { + "nativeSrc": "2868:82:10", + "nodeType": "YulBlock", + "src": "2868:82:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2891:3:10", + "nodeType": "YulIdentifier", + "src": "2891:3:10" + }, + { + "name": "src", + "nativeSrc": "2896:3:10", + "nodeType": "YulIdentifier", + "src": "2896:3:10" + }, + { + "name": "length", + "nativeSrc": "2901:6:10", + "nodeType": "YulIdentifier", + "src": "2901:6:10" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "2878:12:10", + "nodeType": "YulIdentifier", + "src": "2878:12:10" + }, + "nativeSrc": "2878:30:10", + "nodeType": "YulFunctionCall", + "src": "2878:30:10" + }, + "nativeSrc": "2878:30:10", + "nodeType": "YulExpressionStatement", + "src": "2878:30:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2928:3:10", + "nodeType": "YulIdentifier", + "src": "2928:3:10" + }, + { + "name": "length", + "nativeSrc": "2933:6:10", + "nodeType": "YulIdentifier", + "src": "2933:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2924:3:10", + "nodeType": "YulIdentifier", + "src": "2924:3:10" + }, + "nativeSrc": "2924:16:10", + "nodeType": "YulFunctionCall", + "src": "2924:16:10" + }, + { + "kind": "number", + "nativeSrc": "2942:1:10", + "nodeType": "YulLiteral", + "src": "2942:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2917:6:10", + "nodeType": "YulIdentifier", + "src": "2917:6:10" + }, + "nativeSrc": "2917:27:10", + "nodeType": "YulFunctionCall", + "src": "2917:27:10" + }, + "nativeSrc": "2917:27:10", + "nodeType": "YulExpressionStatement", + "src": "2917:27:10" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "2804:146:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2850:3:10", + "nodeType": "YulTypedName", + "src": "2850:3:10", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "2855:3:10", + "nodeType": "YulTypedName", + "src": "2855:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2860:6:10", + "nodeType": "YulTypedName", + "src": "2860:6:10", + "type": "" + } + ], + "src": "2804:146:10" + }, + { + "body": { + "nativeSrc": "3040:341:10", + "nodeType": "YulBlock", + "src": "3040:341:10", + "statements": [ + { + "nativeSrc": "3050:75:10", + "nodeType": "YulAssignment", + "src": "3050:75:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3117:6:10", + "nodeType": "YulIdentifier", + "src": "3117:6:10" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "3075:41:10", + "nodeType": "YulIdentifier", + "src": "3075:41:10" + }, + "nativeSrc": "3075:49:10", + "nodeType": "YulFunctionCall", + "src": "3075:49:10" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "3059:15:10", + "nodeType": "YulIdentifier", + "src": "3059:15:10" + }, + "nativeSrc": "3059:66:10", + "nodeType": "YulFunctionCall", + "src": "3059:66:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3050:5:10", + "nodeType": "YulIdentifier", + "src": "3050:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "3141:5:10", + "nodeType": "YulIdentifier", + "src": "3141:5:10" + }, + { + "name": "length", + "nativeSrc": "3148:6:10", + "nodeType": "YulIdentifier", + "src": "3148:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3134:6:10", + "nodeType": "YulIdentifier", + "src": "3134:6:10" + }, + "nativeSrc": "3134:21:10", + "nodeType": "YulFunctionCall", + "src": "3134:21:10" + }, + "nativeSrc": "3134:21:10", + "nodeType": "YulExpressionStatement", + "src": "3134:21:10" + }, + { + "nativeSrc": "3164:27:10", + "nodeType": "YulVariableDeclaration", + "src": "3164:27:10", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "3179:5:10", + "nodeType": "YulIdentifier", + "src": "3179:5:10" + }, + { + "kind": "number", + "nativeSrc": "3186:4:10", + "nodeType": "YulLiteral", + "src": "3186:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3175:3:10", + "nodeType": "YulIdentifier", + "src": "3175:3:10" + }, + "nativeSrc": "3175:16:10", + "nodeType": "YulFunctionCall", + "src": "3175:16:10" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "3168:3:10", + "nodeType": "YulTypedName", + "src": "3168:3:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3229:83:10", + "nodeType": "YulBlock", + "src": "3229:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "3231:77:10", + "nodeType": "YulIdentifier", + "src": "3231:77:10" + }, + "nativeSrc": "3231:79:10", + "nodeType": "YulFunctionCall", + "src": "3231:79:10" + }, + "nativeSrc": "3231:79:10", + "nodeType": "YulExpressionStatement", + "src": "3231:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "3210:3:10", + "nodeType": "YulIdentifier", + "src": "3210:3:10" + }, + { + "name": "length", + "nativeSrc": "3215:6:10", + "nodeType": "YulIdentifier", + "src": "3215:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3206:3:10", + "nodeType": "YulIdentifier", + "src": "3206:3:10" + }, + "nativeSrc": "3206:16:10", + "nodeType": "YulFunctionCall", + "src": "3206:16:10" + }, + { + "name": "end", + "nativeSrc": "3224:3:10", + "nodeType": "YulIdentifier", + "src": "3224:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3203:2:10", + "nodeType": "YulIdentifier", + "src": "3203:2:10" + }, + "nativeSrc": "3203:25:10", + "nodeType": "YulFunctionCall", + "src": "3203:25:10" + }, + "nativeSrc": "3200:112:10", + "nodeType": "YulIf", + "src": "3200:112:10" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "3358:3:10", + "nodeType": "YulIdentifier", + "src": "3358:3:10" + }, + { + "name": "dst", + "nativeSrc": "3363:3:10", + "nodeType": "YulIdentifier", + "src": "3363:3:10" + }, + { + "name": "length", + "nativeSrc": "3368:6:10", + "nodeType": "YulIdentifier", + "src": "3368:6:10" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "3321:36:10", + "nodeType": "YulIdentifier", + "src": "3321:36:10" + }, + "nativeSrc": "3321:54:10", + "nodeType": "YulFunctionCall", + "src": "3321:54:10" + }, + "nativeSrc": "3321:54:10", + "nodeType": "YulExpressionStatement", + "src": "3321:54:10" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "2956:425:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3013:3:10", + "nodeType": "YulTypedName", + "src": "3013:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3018:6:10", + "nodeType": "YulTypedName", + "src": "3018:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3026:3:10", + "nodeType": "YulTypedName", + "src": "3026:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3034:5:10", + "nodeType": "YulTypedName", + "src": "3034:5:10", + "type": "" + } + ], + "src": "2956:425:10" + }, + { + "body": { + "nativeSrc": "3463:278:10", + "nodeType": "YulBlock", + "src": "3463:278:10", + "statements": [ + { + "body": { + "nativeSrc": "3512:83:10", + "nodeType": "YulBlock", + "src": "3512:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "3514:77:10", + "nodeType": "YulIdentifier", + "src": "3514:77:10" + }, + "nativeSrc": "3514:79:10", + "nodeType": "YulFunctionCall", + "src": "3514:79:10" + }, + "nativeSrc": "3514:79:10", + "nodeType": "YulExpressionStatement", + "src": "3514:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3491:6:10", + "nodeType": "YulIdentifier", + "src": "3491:6:10" + }, + { + "kind": "number", + "nativeSrc": "3499:4:10", + "nodeType": "YulLiteral", + "src": "3499:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3487:3:10", + "nodeType": "YulIdentifier", + "src": "3487:3:10" + }, + "nativeSrc": "3487:17:10", + "nodeType": "YulFunctionCall", + "src": "3487:17:10" + }, + { + "name": "end", + "nativeSrc": "3506:3:10", + "nodeType": "YulIdentifier", + "src": "3506:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3483:3:10", + "nodeType": "YulIdentifier", + "src": "3483:3:10" + }, + "nativeSrc": "3483:27:10", + "nodeType": "YulFunctionCall", + "src": "3483:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3476:6:10", + "nodeType": "YulIdentifier", + "src": "3476:6:10" + }, + "nativeSrc": "3476:35:10", + "nodeType": "YulFunctionCall", + "src": "3476:35:10" + }, + "nativeSrc": "3473:122:10", + "nodeType": "YulIf", + "src": "3473:122:10" + }, + { + "nativeSrc": "3604:34:10", + "nodeType": "YulVariableDeclaration", + "src": "3604:34:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3631:6:10", + "nodeType": "YulIdentifier", + "src": "3631:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3618:12:10", + "nodeType": "YulIdentifier", + "src": "3618:12:10" + }, + "nativeSrc": "3618:20:10", + "nodeType": "YulFunctionCall", + "src": "3618:20:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3608:6:10", + "nodeType": "YulTypedName", + "src": "3608:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "3647:88:10", + "nodeType": "YulAssignment", + "src": "3647:88:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3708:6:10", + "nodeType": "YulIdentifier", + "src": "3708:6:10" + }, + { + "kind": "number", + "nativeSrc": "3716:4:10", + "nodeType": "YulLiteral", + "src": "3716:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3704:3:10", + "nodeType": "YulIdentifier", + "src": "3704:3:10" + }, + "nativeSrc": "3704:17:10", + "nodeType": "YulFunctionCall", + "src": "3704:17:10" + }, + { + "name": "length", + "nativeSrc": "3723:6:10", + "nodeType": "YulIdentifier", + "src": "3723:6:10" + }, + { + "name": "end", + "nativeSrc": "3731:3:10", + "nodeType": "YulIdentifier", + "src": "3731:3:10" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "3656:47:10", + "nodeType": "YulIdentifier", + "src": "3656:47:10" + }, + "nativeSrc": "3656:79:10", + "nodeType": "YulFunctionCall", + "src": "3656:79:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3647:5:10", + "nodeType": "YulIdentifier", + "src": "3647:5:10" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "3401:340:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3441:6:10", + "nodeType": "YulTypedName", + "src": "3441:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3449:3:10", + "nodeType": "YulTypedName", + "src": "3449:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "3457:5:10", + "nodeType": "YulTypedName", + "src": "3457:5:10", + "type": "" + } + ], + "src": "3401:340:10" + }, + { + "body": { + "nativeSrc": "3829:229:10", + "nodeType": "YulBlock", + "src": "3829:229:10", + "statements": [ + { + "body": { + "nativeSrc": "3934:22:10", + "nodeType": "YulBlock", + "src": "3934:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "3936:16:10", + "nodeType": "YulIdentifier", + "src": "3936:16:10" + }, + "nativeSrc": "3936:18:10", + "nodeType": "YulFunctionCall", + "src": "3936:18:10" + }, + "nativeSrc": "3936:18:10", + "nodeType": "YulExpressionStatement", + "src": "3936:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3906:6:10", + "nodeType": "YulIdentifier", + "src": "3906:6:10" + }, + { + "kind": "number", + "nativeSrc": "3914:18:10", + "nodeType": "YulLiteral", + "src": "3914:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3903:2:10", + "nodeType": "YulIdentifier", + "src": "3903:2:10" + }, + "nativeSrc": "3903:30:10", + "nodeType": "YulFunctionCall", + "src": "3903:30:10" + }, + "nativeSrc": "3900:56:10", + "nodeType": "YulIf", + "src": "3900:56:10" + }, + { + "nativeSrc": "3966:25:10", + "nodeType": "YulAssignment", + "src": "3966:25:10", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3978:6:10", + "nodeType": "YulIdentifier", + "src": "3978:6:10" + }, + { + "kind": "number", + "nativeSrc": "3986:4:10", + "nodeType": "YulLiteral", + "src": "3986:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3974:3:10", + "nodeType": "YulIdentifier", + "src": "3974:3:10" + }, + "nativeSrc": "3974:17:10", + "nodeType": "YulFunctionCall", + "src": "3974:17:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "3966:4:10", + "nodeType": "YulIdentifier", + "src": "3966:4:10" + } + ] + }, + { + "nativeSrc": "4028:23:10", + "nodeType": "YulAssignment", + "src": "4028:23:10", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "4040:4:10", + "nodeType": "YulIdentifier", + "src": "4040:4:10" + }, + { + "kind": "number", + "nativeSrc": "4046:4:10", + "nodeType": "YulLiteral", + "src": "4046:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4036:3:10", + "nodeType": "YulIdentifier", + "src": "4036:3:10" + }, + "nativeSrc": "4036:15:10", + "nodeType": "YulFunctionCall", + "src": "4036:15:10" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "4028:4:10", + "nodeType": "YulIdentifier", + "src": "4028:4:10" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "3747:311:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "3813:6:10", + "nodeType": "YulTypedName", + "src": "3813:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "3824:4:10", + "nodeType": "YulTypedName", + "src": "3824:4:10", + "type": "" + } + ], + "src": "3747:311:10" + }, + { + "body": { + "nativeSrc": "4153:28:10", + "nodeType": "YulBlock", + "src": "4153:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4170:1:10", + "nodeType": "YulLiteral", + "src": "4170:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4173:1:10", + "nodeType": "YulLiteral", + "src": "4173:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4163:6:10", + "nodeType": "YulIdentifier", + "src": "4163:6:10" + }, + "nativeSrc": "4163:12:10", + "nodeType": "YulFunctionCall", + "src": "4163:12:10" + }, + "nativeSrc": "4163:12:10", + "nodeType": "YulExpressionStatement", + "src": "4163:12:10" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "4064:117:10", + "nodeType": "YulFunctionDefinition", + "src": "4064:117:10" + }, + { + "body": { + "nativeSrc": "4306:608:10", + "nodeType": "YulBlock", + "src": "4306:608:10", + "statements": [ + { + "nativeSrc": "4316:90:10", + "nodeType": "YulAssignment", + "src": "4316:90:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4398:6:10", + "nodeType": "YulIdentifier", + "src": "4398:6:10" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "4341:56:10", + "nodeType": "YulIdentifier", + "src": "4341:56:10" + }, + "nativeSrc": "4341:64:10", + "nodeType": "YulFunctionCall", + "src": "4341:64:10" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "4325:15:10", + "nodeType": "YulIdentifier", + "src": "4325:15:10" + }, + "nativeSrc": "4325:81:10", + "nodeType": "YulFunctionCall", + "src": "4325:81:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "4316:5:10", + "nodeType": "YulIdentifier", + "src": "4316:5:10" + } + ] + }, + { + "nativeSrc": "4415:16:10", + "nodeType": "YulVariableDeclaration", + "src": "4415:16:10", + "value": { + "name": "array", + "nativeSrc": "4426:5:10", + "nodeType": "YulIdentifier", + "src": "4426:5:10" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "4419:3:10", + "nodeType": "YulTypedName", + "src": "4419:3:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "4448:5:10", + "nodeType": "YulIdentifier", + "src": "4448:5:10" + }, + { + "name": "length", + "nativeSrc": "4455:6:10", + "nodeType": "YulIdentifier", + "src": "4455:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4441:6:10", + "nodeType": "YulIdentifier", + "src": "4441:6:10" + }, + "nativeSrc": "4441:21:10", + "nodeType": "YulFunctionCall", + "src": "4441:21:10" + }, + "nativeSrc": "4441:21:10", + "nodeType": "YulExpressionStatement", + "src": "4441:21:10" + }, + { + "nativeSrc": "4471:23:10", + "nodeType": "YulAssignment", + "src": "4471:23:10", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "4482:5:10", + "nodeType": "YulIdentifier", + "src": "4482:5:10" + }, + { + "kind": "number", + "nativeSrc": "4489:4:10", + "nodeType": "YulLiteral", + "src": "4489:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4478:3:10", + "nodeType": "YulIdentifier", + "src": "4478:3:10" + }, + "nativeSrc": "4478:16:10", + "nodeType": "YulFunctionCall", + "src": "4478:16:10" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "4471:3:10", + "nodeType": "YulIdentifier", + "src": "4471:3:10" + } + ] + }, + { + "nativeSrc": "4504:44:10", + "nodeType": "YulVariableDeclaration", + "src": "4504:44:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4522:6:10", + "nodeType": "YulIdentifier", + "src": "4522:6:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4534:6:10", + "nodeType": "YulIdentifier", + "src": "4534:6:10" + }, + { + "kind": "number", + "nativeSrc": "4542:4:10", + "nodeType": "YulLiteral", + "src": "4542:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4530:3:10", + "nodeType": "YulIdentifier", + "src": "4530:3:10" + }, + "nativeSrc": "4530:17:10", + "nodeType": "YulFunctionCall", + "src": "4530:17:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4518:3:10", + "nodeType": "YulIdentifier", + "src": "4518:3:10" + }, + "nativeSrc": "4518:30:10", + "nodeType": "YulFunctionCall", + "src": "4518:30:10" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "4508:6:10", + "nodeType": "YulTypedName", + "src": "4508:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4576:103:10", + "nodeType": "YulBlock", + "src": "4576:103:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "4590:77:10", + "nodeType": "YulIdentifier", + "src": "4590:77:10" + }, + "nativeSrc": "4590:79:10", + "nodeType": "YulFunctionCall", + "src": "4590:79:10" + }, + "nativeSrc": "4590:79:10", + "nodeType": "YulExpressionStatement", + "src": "4590:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "4563:6:10", + "nodeType": "YulIdentifier", + "src": "4563:6:10" + }, + { + "name": "end", + "nativeSrc": "4571:3:10", + "nodeType": "YulIdentifier", + "src": "4571:3:10" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4560:2:10", + "nodeType": "YulIdentifier", + "src": "4560:2:10" + }, + "nativeSrc": "4560:15:10", + "nodeType": "YulFunctionCall", + "src": "4560:15:10" + }, + "nativeSrc": "4557:122:10", + "nodeType": "YulIf", + "src": "4557:122:10" + }, + { + "body": { + "nativeSrc": "4764:144:10", + "nodeType": "YulBlock", + "src": "4764:144:10", + "statements": [ + { + "nativeSrc": "4779:21:10", + "nodeType": "YulVariableDeclaration", + "src": "4779:21:10", + "value": { + "name": "src", + "nativeSrc": "4797:3:10", + "nodeType": "YulIdentifier", + "src": "4797:3:10" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "4783:10:10", + "nodeType": "YulTypedName", + "src": "4783:10:10", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "4821:3:10", + "nodeType": "YulIdentifier", + "src": "4821:3:10" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "4847:10:10", + "nodeType": "YulIdentifier", + "src": "4847:10:10" + }, + { + "name": "end", + "nativeSrc": "4859:3:10", + "nodeType": "YulIdentifier", + "src": "4859:3:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4826:20:10", + "nodeType": "YulIdentifier", + "src": "4826:20:10" + }, + "nativeSrc": "4826:37:10", + "nodeType": "YulFunctionCall", + "src": "4826:37:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4814:6:10", + "nodeType": "YulIdentifier", + "src": "4814:6:10" + }, + "nativeSrc": "4814:50:10", + "nodeType": "YulFunctionCall", + "src": "4814:50:10" + }, + "nativeSrc": "4814:50:10", + "nodeType": "YulExpressionStatement", + "src": "4814:50:10" + }, + { + "nativeSrc": "4877:21:10", + "nodeType": "YulAssignment", + "src": "4877:21:10", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "4888:3:10", + "nodeType": "YulIdentifier", + "src": "4888:3:10" + }, + { + "kind": "number", + "nativeSrc": "4893:4:10", + "nodeType": "YulLiteral", + "src": "4893:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4884:3:10", + "nodeType": "YulIdentifier", + "src": "4884:3:10" + }, + "nativeSrc": "4884:14:10", + "nodeType": "YulFunctionCall", + "src": "4884:14:10" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "4877:3:10", + "nodeType": "YulIdentifier", + "src": "4877:3:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "4717:3:10", + "nodeType": "YulIdentifier", + "src": "4717:3:10" + }, + { + "name": "srcEnd", + "nativeSrc": "4722:6:10", + "nodeType": "YulIdentifier", + "src": "4722:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4714:2:10", + "nodeType": "YulIdentifier", + "src": "4714:2:10" + }, + "nativeSrc": "4714:15:10", + "nodeType": "YulFunctionCall", + "src": "4714:15:10" + }, + "nativeSrc": "4688:220:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "4730:25:10", + "nodeType": "YulBlock", + "src": "4730:25:10", + "statements": [ + { + "nativeSrc": "4732:21:10", + "nodeType": "YulAssignment", + "src": "4732:21:10", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "4743:3:10", + "nodeType": "YulIdentifier", + "src": "4743:3:10" + }, + { + "kind": "number", + "nativeSrc": "4748:4:10", + "nodeType": "YulLiteral", + "src": "4748:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4739:3:10", + "nodeType": "YulIdentifier", + "src": "4739:3:10" + }, + "nativeSrc": "4739:14:10", + "nodeType": "YulFunctionCall", + "src": "4739:14:10" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "4732:3:10", + "nodeType": "YulIdentifier", + "src": "4732:3:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "4692:21:10", + "nodeType": "YulBlock", + "src": "4692:21:10", + "statements": [ + { + "nativeSrc": "4694:17:10", + "nodeType": "YulVariableDeclaration", + "src": "4694:17:10", + "value": { + "name": "offset", + "nativeSrc": "4705:6:10", + "nodeType": "YulIdentifier", + "src": "4705:6:10" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "4698:3:10", + "nodeType": "YulTypedName", + "src": "4698:3:10", + "type": "" + } + ] + } + ] + }, + "src": "4688:220:10" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "4204:710:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4276:6:10", + "nodeType": "YulTypedName", + "src": "4276:6:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4284:6:10", + "nodeType": "YulTypedName", + "src": "4284:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4292:3:10", + "nodeType": "YulTypedName", + "src": "4292:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "4300:5:10", + "nodeType": "YulTypedName", + "src": "4300:5:10", + "type": "" + } + ], + "src": "4204:710:10" + }, + { + "body": { + "nativeSrc": "5014:293:10", + "nodeType": "YulBlock", + "src": "5014:293:10", + "statements": [ + { + "body": { + "nativeSrc": "5063:83:10", + "nodeType": "YulBlock", + "src": "5063:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5065:77:10", + "nodeType": "YulIdentifier", + "src": "5065:77:10" + }, + "nativeSrc": "5065:79:10", + "nodeType": "YulFunctionCall", + "src": "5065:79:10" + }, + "nativeSrc": "5065:79:10", + "nodeType": "YulExpressionStatement", + "src": "5065:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5042:6:10", + "nodeType": "YulIdentifier", + "src": "5042:6:10" + }, + { + "kind": "number", + "nativeSrc": "5050:4:10", + "nodeType": "YulLiteral", + "src": "5050:4:10", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5038:3:10", + "nodeType": "YulIdentifier", + "src": "5038:3:10" + }, + "nativeSrc": "5038:17:10", + "nodeType": "YulFunctionCall", + "src": "5038:17:10" + }, + { + "name": "end", + "nativeSrc": "5057:3:10", + "nodeType": "YulIdentifier", + "src": "5057:3:10" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5034:3:10", + "nodeType": "YulIdentifier", + "src": "5034:3:10" + }, + "nativeSrc": "5034:27:10", + "nodeType": "YulFunctionCall", + "src": "5034:27:10" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5027:6:10", + "nodeType": "YulIdentifier", + "src": "5027:6:10" + }, + "nativeSrc": "5027:35:10", + "nodeType": "YulFunctionCall", + "src": "5027:35:10" + }, + "nativeSrc": "5024:122:10", + "nodeType": "YulIf", + "src": "5024:122:10" + }, + { + "nativeSrc": "5155:34:10", + "nodeType": "YulVariableDeclaration", + "src": "5155:34:10", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5182:6:10", + "nodeType": "YulIdentifier", + "src": "5182:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5169:12:10", + "nodeType": "YulIdentifier", + "src": "5169:12:10" + }, + "nativeSrc": "5169:20:10", + "nodeType": "YulFunctionCall", + "src": "5169:20:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5159:6:10", + "nodeType": "YulTypedName", + "src": "5159:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "5198:103:10", + "nodeType": "YulAssignment", + "src": "5198:103:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5274:6:10", + "nodeType": "YulIdentifier", + "src": "5274:6:10" + }, + { + "kind": "number", + "nativeSrc": "5282:4:10", + "nodeType": "YulLiteral", + "src": "5282:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5270:3:10", + "nodeType": "YulIdentifier", + "src": "5270:3:10" + }, + "nativeSrc": "5270:17:10", + "nodeType": "YulFunctionCall", + "src": "5270:17:10" + }, + { + "name": "length", + "nativeSrc": "5289:6:10", + "nodeType": "YulIdentifier", + "src": "5289:6:10" + }, + { + "name": "end", + "nativeSrc": "5297:3:10", + "nodeType": "YulIdentifier", + "src": "5297:3:10" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "5207:62:10", + "nodeType": "YulIdentifier", + "src": "5207:62:10" + }, + "nativeSrc": "5207:94:10", + "nodeType": "YulFunctionCall", + "src": "5207:94:10" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "5198:5:10", + "nodeType": "YulIdentifier", + "src": "5198:5:10" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "4937:370:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4992:6:10", + "nodeType": "YulTypedName", + "src": "4992:6:10", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5000:3:10", + "nodeType": "YulTypedName", + "src": "5000:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "5008:5:10", + "nodeType": "YulTypedName", + "src": "5008:5:10", + "type": "" + } + ], + "src": "4937:370:10" + }, + { + "body": { + "nativeSrc": "5431:746:10", + "nodeType": "YulBlock", + "src": "5431:746:10", + "statements": [ + { + "body": { + "nativeSrc": "5477:83:10", + "nodeType": "YulBlock", + "src": "5477:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5479:77:10", + "nodeType": "YulIdentifier", + "src": "5479:77:10" + }, + "nativeSrc": "5479:79:10", + "nodeType": "YulFunctionCall", + "src": "5479:79:10" + }, + "nativeSrc": "5479:79:10", + "nodeType": "YulExpressionStatement", + "src": "5479:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5452:7:10", + "nodeType": "YulIdentifier", + "src": "5452:7:10" + }, + { + "name": "headStart", + "nativeSrc": "5461:9:10", + "nodeType": "YulIdentifier", + "src": "5461:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5448:3:10", + "nodeType": "YulIdentifier", + "src": "5448:3:10" + }, + "nativeSrc": "5448:23:10", + "nodeType": "YulFunctionCall", + "src": "5448:23:10" + }, + { + "kind": "number", + "nativeSrc": "5473:2:10", + "nodeType": "YulLiteral", + "src": "5473:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5444:3:10", + "nodeType": "YulIdentifier", + "src": "5444:3:10" + }, + "nativeSrc": "5444:32:10", + "nodeType": "YulFunctionCall", + "src": "5444:32:10" + }, + "nativeSrc": "5441:119:10", + "nodeType": "YulIf", + "src": "5441:119:10" + }, + { + "nativeSrc": "5570:287:10", + "nodeType": "YulBlock", + "src": "5570:287:10", + "statements": [ + { + "nativeSrc": "5585:45:10", + "nodeType": "YulVariableDeclaration", + "src": "5585:45:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5616:9:10", + "nodeType": "YulIdentifier", + "src": "5616:9:10" + }, + { + "kind": "number", + "nativeSrc": "5627:1:10", + "nodeType": "YulLiteral", + "src": "5627:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5612:3:10", + "nodeType": "YulIdentifier", + "src": "5612:3:10" + }, + "nativeSrc": "5612:17:10", + "nodeType": "YulFunctionCall", + "src": "5612:17:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5599:12:10", + "nodeType": "YulIdentifier", + "src": "5599:12:10" + }, + "nativeSrc": "5599:31:10", + "nodeType": "YulFunctionCall", + "src": "5599:31:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5589:6:10", + "nodeType": "YulTypedName", + "src": "5589:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5677:83:10", + "nodeType": "YulBlock", + "src": "5677:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "5679:77:10", + "nodeType": "YulIdentifier", + "src": "5679:77:10" + }, + "nativeSrc": "5679:79:10", + "nodeType": "YulFunctionCall", + "src": "5679:79:10" + }, + "nativeSrc": "5679:79:10", + "nodeType": "YulExpressionStatement", + "src": "5679:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5649:6:10", + "nodeType": "YulIdentifier", + "src": "5649:6:10" + }, + { + "kind": "number", + "nativeSrc": "5657:18:10", + "nodeType": "YulLiteral", + "src": "5657:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5646:2:10", + "nodeType": "YulIdentifier", + "src": "5646:2:10" + }, + "nativeSrc": "5646:30:10", + "nodeType": "YulFunctionCall", + "src": "5646:30:10" + }, + "nativeSrc": "5643:117:10", + "nodeType": "YulIf", + "src": "5643:117:10" + }, + { + "nativeSrc": "5774:73:10", + "nodeType": "YulAssignment", + "src": "5774:73:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5819:9:10", + "nodeType": "YulIdentifier", + "src": "5819:9:10" + }, + { + "name": "offset", + "nativeSrc": "5830:6:10", + "nodeType": "YulIdentifier", + "src": "5830:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5815:3:10", + "nodeType": "YulIdentifier", + "src": "5815:3:10" + }, + "nativeSrc": "5815:22:10", + "nodeType": "YulFunctionCall", + "src": "5815:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "5839:7:10", + "nodeType": "YulIdentifier", + "src": "5839:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "5784:30:10", + "nodeType": "YulIdentifier", + "src": "5784:30:10" + }, + "nativeSrc": "5784:63:10", + "nodeType": "YulFunctionCall", + "src": "5784:63:10" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5774:6:10", + "nodeType": "YulIdentifier", + "src": "5774:6:10" + } + ] + } + ] + }, + { + "nativeSrc": "5867:303:10", + "nodeType": "YulBlock", + "src": "5867:303:10", + "statements": [ + { + "nativeSrc": "5882:46:10", + "nodeType": "YulVariableDeclaration", + "src": "5882:46:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5913:9:10", + "nodeType": "YulIdentifier", + "src": "5913:9:10" + }, + { + "kind": "number", + "nativeSrc": "5924:2:10", + "nodeType": "YulLiteral", + "src": "5924:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5909:3:10", + "nodeType": "YulIdentifier", + "src": "5909:3:10" + }, + "nativeSrc": "5909:18:10", + "nodeType": "YulFunctionCall", + "src": "5909:18:10" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5896:12:10", + "nodeType": "YulIdentifier", + "src": "5896:12:10" + }, + "nativeSrc": "5896:32:10", + "nodeType": "YulFunctionCall", + "src": "5896:32:10" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5886:6:10", + "nodeType": "YulTypedName", + "src": "5886:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5975:83:10", + "nodeType": "YulBlock", + "src": "5975:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "5977:77:10", + "nodeType": "YulIdentifier", + "src": "5977:77:10" + }, + "nativeSrc": "5977:79:10", + "nodeType": "YulFunctionCall", + "src": "5977:79:10" + }, + "nativeSrc": "5977:79:10", + "nodeType": "YulExpressionStatement", + "src": "5977:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5947:6:10", + "nodeType": "YulIdentifier", + "src": "5947:6:10" + }, + { + "kind": "number", + "nativeSrc": "5955:18:10", + "nodeType": "YulLiteral", + "src": "5955:18:10", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5944:2:10", + "nodeType": "YulIdentifier", + "src": "5944:2:10" + }, + "nativeSrc": "5944:30:10", + "nodeType": "YulFunctionCall", + "src": "5944:30:10" + }, + "nativeSrc": "5941:117:10", + "nodeType": "YulIf", + "src": "5941:117:10" + }, + { + "nativeSrc": "6072:88:10", + "nodeType": "YulAssignment", + "src": "6072:88:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6132:9:10", + "nodeType": "YulIdentifier", + "src": "6132:9:10" + }, + { + "name": "offset", + "nativeSrc": "6143:6:10", + "nodeType": "YulIdentifier", + "src": "6143:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6128:3:10", + "nodeType": "YulIdentifier", + "src": "6128:3:10" + }, + "nativeSrc": "6128:22:10", + "nodeType": "YulFunctionCall", + "src": "6128:22:10" + }, + { + "name": "dataEnd", + "nativeSrc": "6152:7:10", + "nodeType": "YulIdentifier", + "src": "6152:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "6082:45:10", + "nodeType": "YulIdentifier", + "src": "6082:45:10" + }, + "nativeSrc": "6082:78:10", + "nodeType": "YulFunctionCall", + "src": "6082:78:10" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6072:6:10", + "nodeType": "YulIdentifier", + "src": "6072:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "5313:864:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5393:9:10", + "nodeType": "YulTypedName", + "src": "5393:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5404:7:10", + "nodeType": "YulTypedName", + "src": "5404:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5416:6:10", + "nodeType": "YulTypedName", + "src": "5416:6:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5424:6:10", + "nodeType": "YulTypedName", + "src": "5424:6:10", + "type": "" + } + ], + "src": "5313:864:10" + }, + { + "body": { + "nativeSrc": "6242:40:10", + "nodeType": "YulBlock", + "src": "6242:40:10", + "statements": [ + { + "nativeSrc": "6253:22:10", + "nodeType": "YulAssignment", + "src": "6253:22:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6269:5:10", + "nodeType": "YulIdentifier", + "src": "6269:5:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6263:5:10", + "nodeType": "YulIdentifier", + "src": "6263:5:10" + }, + "nativeSrc": "6263:12:10", + "nodeType": "YulFunctionCall", + "src": "6263:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "6253:6:10", + "nodeType": "YulIdentifier", + "src": "6253:6:10" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6183:99:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6225:5:10", + "nodeType": "YulTypedName", + "src": "6225:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "6235:6:10", + "nodeType": "YulTypedName", + "src": "6235:6:10", + "type": "" + } + ], + "src": "6183:99:10" + }, + { + "body": { + "nativeSrc": "6384:73:10", + "nodeType": "YulBlock", + "src": "6384:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6401:3:10", + "nodeType": "YulIdentifier", + "src": "6401:3:10" + }, + { + "name": "length", + "nativeSrc": "6406:6:10", + "nodeType": "YulIdentifier", + "src": "6406:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6394:6:10", + "nodeType": "YulIdentifier", + "src": "6394:6:10" + }, + "nativeSrc": "6394:19:10", + "nodeType": "YulFunctionCall", + "src": "6394:19:10" + }, + "nativeSrc": "6394:19:10", + "nodeType": "YulExpressionStatement", + "src": "6394:19:10" + }, + { + "nativeSrc": "6422:29:10", + "nodeType": "YulAssignment", + "src": "6422:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6441:3:10", + "nodeType": "YulIdentifier", + "src": "6441:3:10" + }, + { + "kind": "number", + "nativeSrc": "6446:4:10", + "nodeType": "YulLiteral", + "src": "6446:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6437:3:10", + "nodeType": "YulIdentifier", + "src": "6437:3:10" + }, + "nativeSrc": "6437:14:10", + "nodeType": "YulFunctionCall", + "src": "6437:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "6422:11:10", + "nodeType": "YulIdentifier", + "src": "6422:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6288:169:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6356:3:10", + "nodeType": "YulTypedName", + "src": "6356:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6361:6:10", + "nodeType": "YulTypedName", + "src": "6361:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "6372:11:10", + "nodeType": "YulTypedName", + "src": "6372:11:10", + "type": "" + } + ], + "src": "6288:169:10" + }, + { + "body": { + "nativeSrc": "6525:184:10", + "nodeType": "YulBlock", + "src": "6525:184:10", + "statements": [ + { + "nativeSrc": "6535:10:10", + "nodeType": "YulVariableDeclaration", + "src": "6535:10:10", + "value": { + "kind": "number", + "nativeSrc": "6544:1:10", + "nodeType": "YulLiteral", + "src": "6544:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "6539:1:10", + "nodeType": "YulTypedName", + "src": "6539:1:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6604:63:10", + "nodeType": "YulBlock", + "src": "6604:63:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "6629:3:10", + "nodeType": "YulIdentifier", + "src": "6629:3:10" + }, + { + "name": "i", + "nativeSrc": "6634:1:10", + "nodeType": "YulIdentifier", + "src": "6634:1:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6625:3:10", + "nodeType": "YulIdentifier", + "src": "6625:3:10" + }, + "nativeSrc": "6625:11:10", + "nodeType": "YulFunctionCall", + "src": "6625:11:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "6648:3:10", + "nodeType": "YulIdentifier", + "src": "6648:3:10" + }, + { + "name": "i", + "nativeSrc": "6653:1:10", + "nodeType": "YulIdentifier", + "src": "6653:1:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6644:3:10", + "nodeType": "YulIdentifier", + "src": "6644:3:10" + }, + "nativeSrc": "6644:11:10", + "nodeType": "YulFunctionCall", + "src": "6644:11:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6638:5:10", + "nodeType": "YulIdentifier", + "src": "6638:5:10" + }, + "nativeSrc": "6638:18:10", + "nodeType": "YulFunctionCall", + "src": "6638:18:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6618:6:10", + "nodeType": "YulIdentifier", + "src": "6618:6:10" + }, + "nativeSrc": "6618:39:10", + "nodeType": "YulFunctionCall", + "src": "6618:39:10" + }, + "nativeSrc": "6618:39:10", + "nodeType": "YulExpressionStatement", + "src": "6618:39:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "6565:1:10", + "nodeType": "YulIdentifier", + "src": "6565:1:10" + }, + { + "name": "length", + "nativeSrc": "6568:6:10", + "nodeType": "YulIdentifier", + "src": "6568:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6562:2:10", + "nodeType": "YulIdentifier", + "src": "6562:2:10" + }, + "nativeSrc": "6562:13:10", + "nodeType": "YulFunctionCall", + "src": "6562:13:10" + }, + "nativeSrc": "6554:113:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "6576:19:10", + "nodeType": "YulBlock", + "src": "6576:19:10", + "statements": [ + { + "nativeSrc": "6578:15:10", + "nodeType": "YulAssignment", + "src": "6578:15:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "6587:1:10", + "nodeType": "YulIdentifier", + "src": "6587:1:10" + }, + { + "kind": "number", + "nativeSrc": "6590:2:10", + "nodeType": "YulLiteral", + "src": "6590:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6583:3:10", + "nodeType": "YulIdentifier", + "src": "6583:3:10" + }, + "nativeSrc": "6583:10:10", + "nodeType": "YulFunctionCall", + "src": "6583:10:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "6578:1:10", + "nodeType": "YulIdentifier", + "src": "6578:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "6558:3:10", + "nodeType": "YulBlock", + "src": "6558:3:10", + "statements": [] + }, + "src": "6554:113:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "6687:3:10", + "nodeType": "YulIdentifier", + "src": "6687:3:10" + }, + { + "name": "length", + "nativeSrc": "6692:6:10", + "nodeType": "YulIdentifier", + "src": "6692:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6683:3:10", + "nodeType": "YulIdentifier", + "src": "6683:3:10" + }, + "nativeSrc": "6683:16:10", + "nodeType": "YulFunctionCall", + "src": "6683:16:10" + }, + { + "kind": "number", + "nativeSrc": "6701:1:10", + "nodeType": "YulLiteral", + "src": "6701:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6676:6:10", + "nodeType": "YulIdentifier", + "src": "6676:6:10" + }, + "nativeSrc": "6676:27:10", + "nodeType": "YulFunctionCall", + "src": "6676:27:10" + }, + "nativeSrc": "6676:27:10", + "nodeType": "YulExpressionStatement", + "src": "6676:27:10" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6463:246:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "6507:3:10", + "nodeType": "YulTypedName", + "src": "6507:3:10", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "6512:3:10", + "nodeType": "YulTypedName", + "src": "6512:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6517:6:10", + "nodeType": "YulTypedName", + "src": "6517:6:10", + "type": "" + } + ], + "src": "6463:246:10" + }, + { + "body": { + "nativeSrc": "6807:285:10", + "nodeType": "YulBlock", + "src": "6807:285:10", + "statements": [ + { + "nativeSrc": "6817:53:10", + "nodeType": "YulVariableDeclaration", + "src": "6817:53:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6864:5:10", + "nodeType": "YulIdentifier", + "src": "6864:5:10" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6831:32:10", + "nodeType": "YulIdentifier", + "src": "6831:32:10" + }, + "nativeSrc": "6831:39:10", + "nodeType": "YulFunctionCall", + "src": "6831:39:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "6821:6:10", + "nodeType": "YulTypedName", + "src": "6821:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "6879:78:10", + "nodeType": "YulAssignment", + "src": "6879:78:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6945:3:10", + "nodeType": "YulIdentifier", + "src": "6945:3:10" + }, + { + "name": "length", + "nativeSrc": "6950:6:10", + "nodeType": "YulIdentifier", + "src": "6950:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6886:58:10", + "nodeType": "YulIdentifier", + "src": "6886:58:10" + }, + "nativeSrc": "6886:71:10", + "nodeType": "YulFunctionCall", + "src": "6886:71:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "6879:3:10", + "nodeType": "YulIdentifier", + "src": "6879:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7005:5:10", + "nodeType": "YulIdentifier", + "src": "7005:5:10" + }, + { + "kind": "number", + "nativeSrc": "7012:4:10", + "nodeType": "YulLiteral", + "src": "7012:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7001:3:10", + "nodeType": "YulIdentifier", + "src": "7001:3:10" + }, + "nativeSrc": "7001:16:10", + "nodeType": "YulFunctionCall", + "src": "7001:16:10" + }, + { + "name": "pos", + "nativeSrc": "7019:3:10", + "nodeType": "YulIdentifier", + "src": "7019:3:10" + }, + { + "name": "length", + "nativeSrc": "7024:6:10", + "nodeType": "YulIdentifier", + "src": "7024:6:10" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6966:34:10", + "nodeType": "YulIdentifier", + "src": "6966:34:10" + }, + "nativeSrc": "6966:65:10", + "nodeType": "YulFunctionCall", + "src": "6966:65:10" + }, + "nativeSrc": "6966:65:10", + "nodeType": "YulExpressionStatement", + "src": "6966:65:10" + }, + { + "nativeSrc": "7040:46:10", + "nodeType": "YulAssignment", + "src": "7040:46:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7051:3:10", + "nodeType": "YulIdentifier", + "src": "7051:3:10" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7078:6:10", + "nodeType": "YulIdentifier", + "src": "7078:6:10" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7056:21:10", + "nodeType": "YulIdentifier", + "src": "7056:21:10" + }, + "nativeSrc": "7056:29:10", + "nodeType": "YulFunctionCall", + "src": "7056:29:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7047:3:10", + "nodeType": "YulIdentifier", + "src": "7047:3:10" + }, + "nativeSrc": "7047:39:10", + "nodeType": "YulFunctionCall", + "src": "7047:39:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "7040:3:10", + "nodeType": "YulIdentifier", + "src": "7040:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6715:377:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6788:5:10", + "nodeType": "YulTypedName", + "src": "6788:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6795:3:10", + "nodeType": "YulTypedName", + "src": "6795:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6803:3:10", + "nodeType": "YulTypedName", + "src": "6803:3:10", + "type": "" + } + ], + "src": "6715:377:10" + }, + { + "body": { + "nativeSrc": "7172:40:10", + "nodeType": "YulBlock", + "src": "7172:40:10", + "statements": [ + { + "nativeSrc": "7183:22:10", + "nodeType": "YulAssignment", + "src": "7183:22:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7199:5:10", + "nodeType": "YulIdentifier", + "src": "7199:5:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7193:5:10", + "nodeType": "YulIdentifier", + "src": "7193:5:10" + }, + "nativeSrc": "7193:12:10", + "nodeType": "YulFunctionCall", + "src": "7193:12:10" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "7183:6:10", + "nodeType": "YulIdentifier", + "src": "7183:6:10" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "7098:114:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7155:5:10", + "nodeType": "YulTypedName", + "src": "7155:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "7165:6:10", + "nodeType": "YulTypedName", + "src": "7165:6:10", + "type": "" + } + ], + "src": "7098:114:10" + }, + { + "body": { + "nativeSrc": "7329:73:10", + "nodeType": "YulBlock", + "src": "7329:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7346:3:10", + "nodeType": "YulIdentifier", + "src": "7346:3:10" + }, + { + "name": "length", + "nativeSrc": "7351:6:10", + "nodeType": "YulIdentifier", + "src": "7351:6:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7339:6:10", + "nodeType": "YulIdentifier", + "src": "7339:6:10" + }, + "nativeSrc": "7339:19:10", + "nodeType": "YulFunctionCall", + "src": "7339:19:10" + }, + "nativeSrc": "7339:19:10", + "nodeType": "YulExpressionStatement", + "src": "7339:19:10" + }, + { + "nativeSrc": "7367:29:10", + "nodeType": "YulAssignment", + "src": "7367:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7386:3:10", + "nodeType": "YulIdentifier", + "src": "7386:3:10" + }, + { + "kind": "number", + "nativeSrc": "7391:4:10", + "nodeType": "YulLiteral", + "src": "7391:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7382:3:10", + "nodeType": "YulIdentifier", + "src": "7382:3:10" + }, + "nativeSrc": "7382:14:10", + "nodeType": "YulFunctionCall", + "src": "7382:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "7367:11:10", + "nodeType": "YulIdentifier", + "src": "7367:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "7218:184:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "7301:3:10", + "nodeType": "YulTypedName", + "src": "7301:3:10", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7306:6:10", + "nodeType": "YulTypedName", + "src": "7306:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "7317:11:10", + "nodeType": "YulTypedName", + "src": "7317:11:10", + "type": "" + } + ], + "src": "7218:184:10" + }, + { + "body": { + "nativeSrc": "7480:60:10", + "nodeType": "YulBlock", + "src": "7480:60:10", + "statements": [ + { + "nativeSrc": "7490:11:10", + "nodeType": "YulAssignment", + "src": "7490:11:10", + "value": { + "name": "ptr", + "nativeSrc": "7498:3:10", + "nodeType": "YulIdentifier", + "src": "7498:3:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "7490:4:10", + "nodeType": "YulIdentifier", + "src": "7490:4:10" + } + ] + }, + { + "nativeSrc": "7511:22:10", + "nodeType": "YulAssignment", + "src": "7511:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "7523:3:10", + "nodeType": "YulIdentifier", + "src": "7523:3:10" + }, + { + "kind": "number", + "nativeSrc": "7528:4:10", + "nodeType": "YulLiteral", + "src": "7528:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7519:3:10", + "nodeType": "YulIdentifier", + "src": "7519:3:10" + }, + "nativeSrc": "7519:14:10", + "nodeType": "YulFunctionCall", + "src": "7519:14:10" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "7511:4:10", + "nodeType": "YulIdentifier", + "src": "7511:4:10" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "7408:132:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "7467:3:10", + "nodeType": "YulTypedName", + "src": "7467:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "7475:4:10", + "nodeType": "YulTypedName", + "src": "7475:4:10", + "type": "" + } + ], + "src": "7408:132:10" + }, + { + "body": { + "nativeSrc": "7601:53:10", + "nodeType": "YulBlock", + "src": "7601:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7618:3:10", + "nodeType": "YulIdentifier", + "src": "7618:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7641:5:10", + "nodeType": "YulIdentifier", + "src": "7641:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "7623:17:10", + "nodeType": "YulIdentifier", + "src": "7623:17:10" + }, + "nativeSrc": "7623:24:10", + "nodeType": "YulFunctionCall", + "src": "7623:24:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7611:6:10", + "nodeType": "YulIdentifier", + "src": "7611:6:10" + }, + "nativeSrc": "7611:37:10", + "nodeType": "YulFunctionCall", + "src": "7611:37:10" + }, + "nativeSrc": "7611:37:10", + "nodeType": "YulExpressionStatement", + "src": "7611:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nativeSrc": "7546:108:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7589:5:10", + "nodeType": "YulTypedName", + "src": "7589:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7596:3:10", + "nodeType": "YulTypedName", + "src": "7596:3:10", + "type": "" + } + ], + "src": "7546:108:10" + }, + { + "body": { + "nativeSrc": "7740:99:10", + "nodeType": "YulBlock", + "src": "7740:99:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7784:6:10", + "nodeType": "YulIdentifier", + "src": "7784:6:10" + }, + { + "name": "pos", + "nativeSrc": "7792:3:10", + "nodeType": "YulIdentifier", + "src": "7792:3:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nativeSrc": "7750:33:10", + "nodeType": "YulIdentifier", + "src": "7750:33:10" + }, + "nativeSrc": "7750:46:10", + "nodeType": "YulFunctionCall", + "src": "7750:46:10" + }, + "nativeSrc": "7750:46:10", + "nodeType": "YulExpressionStatement", + "src": "7750:46:10" + }, + { + "nativeSrc": "7805:28:10", + "nodeType": "YulAssignment", + "src": "7805:28:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7823:3:10", + "nodeType": "YulIdentifier", + "src": "7823:3:10" + }, + { + "kind": "number", + "nativeSrc": "7828:4:10", + "nodeType": "YulLiteral", + "src": "7828:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7819:3:10", + "nodeType": "YulIdentifier", + "src": "7819:3:10" + }, + "nativeSrc": "7819:14:10", + "nodeType": "YulFunctionCall", + "src": "7819:14:10" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "7805:10:10", + "nodeType": "YulIdentifier", + "src": "7805:10:10" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "7660:179:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "7713:6:10", + "nodeType": "YulTypedName", + "src": "7713:6:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7721:3:10", + "nodeType": "YulTypedName", + "src": "7721:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "7729:10:10", + "nodeType": "YulTypedName", + "src": "7729:10:10", + "type": "" + } + ], + "src": "7660:179:10" + }, + { + "body": { + "nativeSrc": "7920:38:10", + "nodeType": "YulBlock", + "src": "7920:38:10", + "statements": [ + { + "nativeSrc": "7930:22:10", + "nodeType": "YulAssignment", + "src": "7930:22:10", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "7942:3:10", + "nodeType": "YulIdentifier", + "src": "7942:3:10" + }, + { + "kind": "number", + "nativeSrc": "7947:4:10", + "nodeType": "YulLiteral", + "src": "7947:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7938:3:10", + "nodeType": "YulIdentifier", + "src": "7938:3:10" + }, + "nativeSrc": "7938:14:10", + "nodeType": "YulFunctionCall", + "src": "7938:14:10" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "7930:4:10", + "nodeType": "YulIdentifier", + "src": "7930:4:10" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "7845:113:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "7907:3:10", + "nodeType": "YulTypedName", + "src": "7907:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "7915:4:10", + "nodeType": "YulTypedName", + "src": "7915:4:10", + "type": "" + } + ], + "src": "7845:113:10" + }, + { + "body": { + "nativeSrc": "8118:608:10", + "nodeType": "YulBlock", + "src": "8118:608:10", + "statements": [ + { + "nativeSrc": "8128:68:10", + "nodeType": "YulVariableDeclaration", + "src": "8128:68:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8190:5:10", + "nodeType": "YulIdentifier", + "src": "8190:5:10" + } + ], + "functionName": { + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "8142:47:10", + "nodeType": "YulIdentifier", + "src": "8142:47:10" + }, + "nativeSrc": "8142:54:10", + "nodeType": "YulFunctionCall", + "src": "8142:54:10" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8132:6:10", + "nodeType": "YulTypedName", + "src": "8132:6:10", + "type": "" + } + ] + }, + { + "nativeSrc": "8205:93:10", + "nodeType": "YulAssignment", + "src": "8205:93:10", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8286:3:10", + "nodeType": "YulIdentifier", + "src": "8286:3:10" + }, + { + "name": "length", + "nativeSrc": "8291:6:10", + "nodeType": "YulIdentifier", + "src": "8291:6:10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "8212:73:10", + "nodeType": "YulIdentifier", + "src": "8212:73:10" + }, + "nativeSrc": "8212:86:10", + "nodeType": "YulFunctionCall", + "src": "8212:86:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8205:3:10", + "nodeType": "YulIdentifier", + "src": "8205:3:10" + } + ] + }, + { + "nativeSrc": "8307:71:10", + "nodeType": "YulVariableDeclaration", + "src": "8307:71:10", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8372:5:10", + "nodeType": "YulIdentifier", + "src": "8372:5:10" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "8322:49:10", + "nodeType": "YulIdentifier", + "src": "8322:49:10" + }, + "nativeSrc": "8322:56:10", + "nodeType": "YulFunctionCall", + "src": "8322:56:10" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "8311:7:10", + "nodeType": "YulTypedName", + "src": "8311:7:10", + "type": "" + } + ] + }, + { + "nativeSrc": "8387:21:10", + "nodeType": "YulVariableDeclaration", + "src": "8387:21:10", + "value": { + "name": "baseRef", + "nativeSrc": "8401:7:10", + "nodeType": "YulIdentifier", + "src": "8401:7:10" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "8391:6:10", + "nodeType": "YulTypedName", + "src": "8391:6:10", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8477:224:10", + "nodeType": "YulBlock", + "src": "8477:224:10", + "statements": [ + { + "nativeSrc": "8491:34:10", + "nodeType": "YulVariableDeclaration", + "src": "8491:34:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "8518:6:10", + "nodeType": "YulIdentifier", + "src": "8518:6:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8512:5:10", + "nodeType": "YulIdentifier", + "src": "8512:5:10" + }, + "nativeSrc": "8512:13:10", + "nodeType": "YulFunctionCall", + "src": "8512:13:10" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "8495:13:10", + "nodeType": "YulTypedName", + "src": "8495:13:10", + "type": "" + } + ] + }, + { + "nativeSrc": "8538:70:10", + "nodeType": "YulAssignment", + "src": "8538:70:10", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "8589:13:10", + "nodeType": "YulIdentifier", + "src": "8589:13:10" + }, + { + "name": "pos", + "nativeSrc": "8604:3:10", + "nodeType": "YulIdentifier", + "src": "8604:3:10" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "8545:43:10", + "nodeType": "YulIdentifier", + "src": "8545:43:10" + }, + "nativeSrc": "8545:63:10", + "nodeType": "YulFunctionCall", + "src": "8545:63:10" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8538:3:10", + "nodeType": "YulIdentifier", + "src": "8538:3:10" + } + ] + }, + { + "nativeSrc": "8621:70:10", + "nodeType": "YulAssignment", + "src": "8621:70:10", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "8684:6:10", + "nodeType": "YulIdentifier", + "src": "8684:6:10" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "8631:52:10", + "nodeType": "YulIdentifier", + "src": "8631:52:10" + }, + "nativeSrc": "8631:60:10", + "nodeType": "YulFunctionCall", + "src": "8631:60:10" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "8621:6:10", + "nodeType": "YulIdentifier", + "src": "8621:6:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "8439:1:10", + "nodeType": "YulIdentifier", + "src": "8439:1:10" + }, + { + "name": "length", + "nativeSrc": "8442:6:10", + "nodeType": "YulIdentifier", + "src": "8442:6:10" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8436:2:10", + "nodeType": "YulIdentifier", + "src": "8436:2:10" + }, + "nativeSrc": "8436:13:10", + "nodeType": "YulFunctionCall", + "src": "8436:13:10" + }, + "nativeSrc": "8417:284:10", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "8450:18:10", + "nodeType": "YulBlock", + "src": "8450:18:10", + "statements": [ + { + "nativeSrc": "8452:14:10", + "nodeType": "YulAssignment", + "src": "8452:14:10", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "8461:1:10", + "nodeType": "YulIdentifier", + "src": "8461:1:10" + }, + { + "kind": "number", + "nativeSrc": "8464:1:10", + "nodeType": "YulLiteral", + "src": "8464:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8457:3:10", + "nodeType": "YulIdentifier", + "src": "8457:3:10" + }, + "nativeSrc": "8457:9:10", + "nodeType": "YulFunctionCall", + "src": "8457:9:10" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "8452:1:10", + "nodeType": "YulIdentifier", + "src": "8452:1:10" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "8421:14:10", + "nodeType": "YulBlock", + "src": "8421:14:10", + "statements": [ + { + "nativeSrc": "8423:10:10", + "nodeType": "YulVariableDeclaration", + "src": "8423:10:10", + "value": { + "kind": "number", + "nativeSrc": "8432:1:10", + "nodeType": "YulLiteral", + "src": "8432:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "8427:1:10", + "nodeType": "YulTypedName", + "src": "8427:1:10", + "type": "" + } + ] + } + ] + }, + "src": "8417:284:10" + }, + { + "nativeSrc": "8710:10:10", + "nodeType": "YulAssignment", + "src": "8710:10:10", + "value": { + "name": "pos", + "nativeSrc": "8717:3:10", + "nodeType": "YulIdentifier", + "src": "8717:3:10" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8710:3:10", + "nodeType": "YulIdentifier", + "src": "8710:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "7994:732:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8097:5:10", + "nodeType": "YulTypedName", + "src": "8097:5:10", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8104:3:10", + "nodeType": "YulTypedName", + "src": "8104:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8113:3:10", + "nodeType": "YulTypedName", + "src": "8113:3:10", + "type": "" + } + ], + "src": "7994:732:10" + }, + { + "body": { + "nativeSrc": "8928:378:10", + "nodeType": "YulBlock", + "src": "8928:378:10", + "statements": [ + { + "nativeSrc": "8938:26:10", + "nodeType": "YulAssignment", + "src": "8938:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8950:9:10", + "nodeType": "YulIdentifier", + "src": "8950:9:10" + }, + { + "kind": "number", + "nativeSrc": "8961:2:10", + "nodeType": "YulLiteral", + "src": "8961:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8946:3:10", + "nodeType": "YulIdentifier", + "src": "8946:3:10" + }, + "nativeSrc": "8946:18:10", + "nodeType": "YulFunctionCall", + "src": "8946:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8938:4:10", + "nodeType": "YulIdentifier", + "src": "8938:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8985:9:10", + "nodeType": "YulIdentifier", + "src": "8985:9:10" + }, + { + "kind": "number", + "nativeSrc": "8996:1:10", + "nodeType": "YulLiteral", + "src": "8996:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8981:3:10", + "nodeType": "YulIdentifier", + "src": "8981:3:10" + }, + "nativeSrc": "8981:17:10", + "nodeType": "YulFunctionCall", + "src": "8981:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9004:4:10", + "nodeType": "YulIdentifier", + "src": "9004:4:10" + }, + { + "name": "headStart", + "nativeSrc": "9010:9:10", + "nodeType": "YulIdentifier", + "src": "9010:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9000:3:10", + "nodeType": "YulIdentifier", + "src": "9000:3:10" + }, + "nativeSrc": "9000:20:10", + "nodeType": "YulFunctionCall", + "src": "9000:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8974:6:10", + "nodeType": "YulIdentifier", + "src": "8974:6:10" + }, + "nativeSrc": "8974:47:10", + "nodeType": "YulFunctionCall", + "src": "8974:47:10" + }, + "nativeSrc": "8974:47:10", + "nodeType": "YulExpressionStatement", + "src": "8974:47:10" + }, + { + "nativeSrc": "9030:86:10", + "nodeType": "YulAssignment", + "src": "9030:86:10", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9102:6:10", + "nodeType": "YulIdentifier", + "src": "9102:6:10" + }, + { + "name": "tail", + "nativeSrc": "9111:4:10", + "nodeType": "YulIdentifier", + "src": "9111:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9038:63:10", + "nodeType": "YulIdentifier", + "src": "9038:63:10" + }, + "nativeSrc": "9038:78:10", + "nodeType": "YulFunctionCall", + "src": "9038:78:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9030:4:10", + "nodeType": "YulIdentifier", + "src": "9030:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9137:9:10", + "nodeType": "YulIdentifier", + "src": "9137:9:10" + }, + { + "kind": "number", + "nativeSrc": "9148:2:10", + "nodeType": "YulLiteral", + "src": "9148:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9133:3:10", + "nodeType": "YulIdentifier", + "src": "9133:3:10" + }, + "nativeSrc": "9133:18:10", + "nodeType": "YulFunctionCall", + "src": "9133:18:10" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9157:4:10", + "nodeType": "YulIdentifier", + "src": "9157:4:10" + }, + { + "name": "headStart", + "nativeSrc": "9163:9:10", + "nodeType": "YulIdentifier", + "src": "9163:9:10" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9153:3:10", + "nodeType": "YulIdentifier", + "src": "9153:3:10" + }, + "nativeSrc": "9153:20:10", + "nodeType": "YulFunctionCall", + "src": "9153:20:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9126:6:10", + "nodeType": "YulIdentifier", + "src": "9126:6:10" + }, + "nativeSrc": "9126:48:10", + "nodeType": "YulFunctionCall", + "src": "9126:48:10" + }, + "nativeSrc": "9126:48:10", + "nodeType": "YulExpressionStatement", + "src": "9126:48:10" + }, + { + "nativeSrc": "9183:116:10", + "nodeType": "YulAssignment", + "src": "9183:116:10", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "9285:6:10", + "nodeType": "YulIdentifier", + "src": "9285:6:10" + }, + { + "name": "tail", + "nativeSrc": "9294:4:10", + "nodeType": "YulIdentifier", + "src": "9294:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "9191:93:10", + "nodeType": "YulIdentifier", + "src": "9191:93:10" + }, + "nativeSrc": "9191:108:10", + "nodeType": "YulFunctionCall", + "src": "9191:108:10" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9183:4:10", + "nodeType": "YulIdentifier", + "src": "9183:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_string_memory_ptr_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "8732:574:10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8892:9:10", + "nodeType": "YulTypedName", + "src": "8892:9:10", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8904:6:10", + "nodeType": "YulTypedName", + "src": "8904:6:10", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8912:6:10", + "nodeType": "YulTypedName", + "src": "8912:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8923:4:10", + "nodeType": "YulTypedName", + "src": "8923:4:10", + "type": "" + } + ], + "src": "8732:574:10" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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 array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // 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_string_memory_ptrt_array$_t_address_$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_string_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_address_$dyn_memory_ptr(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 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 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 array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$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_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$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_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_array$_t_address_$dyn_memory_ptr__to_t_string_memory_ptr_t_array$_t_address_$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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n}\n", + "id": 10, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80631d8f29e814610067578063715018a6146100835780637c3fab9d1461008d5780638da5cb5b146100ab578063f00b6b7a146100c9578063f2fde38b146100e5575b600080fd5b610081600480360381019061007c9190610584565b610101565b005b61008b61014d565b005b610095610161565b6040516100a291906105c0565b60405180910390f35b6100b3610187565b6040516100c091906105c0565b60405180910390f35b6100e360048036038101906100de91906107e9565b6101b0565b005b6100ff60048036038101906100fa9190610584565b610288565b005b61010961030e565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61015561030e565b61015f6000610395565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006101dd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610459565b90508073ffffffffffffffffffffffffffffffffffffffff1663a644cbdc84846040518363ffffffff1660e01b815260040161021a92919061099e565b600060405180830381600087803b15801561023457600080fd5b505af1158015610248573d6000803e3d6000fd5b505050507f4500126d94fb0575f6f62aeaa53ad6d563ed80c940f50c37704c63456432543a8160405161027b91906105c0565b60405180910390a1505050565b61029061030e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103025760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016102f991906105c0565b60405180910390fd5b61030b81610395565b50565b61031661050a565b73ffffffffffffffffffffffffffffffffffffffff16610334610187565b73ffffffffffffffffffffffffffffffffffffffff16146103935761035761050a565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161038a91906105c0565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610505576040517fc2f868f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061055182610526565b9050919050565b61056181610546565b811461056c57600080fd5b50565b60008135905061057e81610558565b92915050565b60006020828403121561059a5761059961051c565b5b60006105a88482850161056f565b91505092915050565b6105ba81610546565b82525050565b60006020820190506105d560008301846105b1565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61062e826105e5565b810181811067ffffffffffffffff8211171561064d5761064c6105f6565b5b80604052505050565b6000610660610512565b905061066c8282610625565b919050565b600067ffffffffffffffff82111561068c5761068b6105f6565b5b610695826105e5565b9050602081019050919050565b82818337600083830152505050565b60006106c46106bf84610671565b610656565b9050828152602081018484840111156106e0576106df6105e0565b5b6106eb8482856106a2565b509392505050565b600082601f830112610708576107076105db565b5b81356107188482602086016106b1565b91505092915050565b600067ffffffffffffffff82111561073c5761073b6105f6565b5b602082029050602081019050919050565b600080fd5b600061076561076084610721565b610656565b905080838252602082019050602084028301858111156107885761078761074d565b5b835b818110156107b1578061079d888261056f565b84526020840193505060208101905061078a565b5050509392505050565b600082601f8301126107d0576107cf6105db565b5b81356107e0848260208601610752565b91505092915050565b60008060408385031215610800576107ff61051c565b5b600083013567ffffffffffffffff81111561081e5761081d610521565b5b61082a858286016106f3565b925050602083013567ffffffffffffffff81111561084b5761084a610521565b5b610857858286016107bb565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561089b578082015181840152602081019050610880565b60008484015250505050565b60006108b282610861565b6108bc818561086c565b93506108cc81856020860161087d565b6108d5816105e5565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61091581610546565b82525050565b6000610927838361090c565b60208301905092915050565b6000602082019050919050565b600061094b826108e0565b61095581856108eb565b9350610960836108fc565b8060005b83811015610991578151610978888261091b565b975061098383610933565b925050600181019050610964565b5085935050505092915050565b600060408201905081810360008301526109b881856108a7565b905081810360208301526109cc8184610940565b9050939250505056fea2646970667358221220854a33be93cc06ef7ce097464fcf2eea51bbc441dfe2d4facf0e7283af86c72064736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1D8F29E8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x7C3FAB9D EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xF00B6B7A EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x8B PUSH2 0x14D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x187 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0x7E9 JUMP JUMPDEST PUSH2 0x1B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH2 0x288 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x30E JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x155 PUSH2 0x30E JUMP JUMPDEST PUSH2 0x15F PUSH1 0x0 PUSH2 0x395 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DD PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x459 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA644CBDC DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21A SWAP3 SWAP2 SWAP1 PUSH2 0x99E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x248 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x4500126D94FB0575F6F62AEAA53AD6D563ED80C940F50C37704C63456432543A DUP2 PUSH1 0x40 MLOAD PUSH2 0x27B SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x290 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x302 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F9 SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x395 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x316 PUSH2 0x50A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x334 PUSH2 0x187 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x393 JUMPI PUSH2 0x357 PUSH2 0x50A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38A SWAP2 SWAP1 PUSH2 0x5C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH23 0x3D602D80600A3D3981F3363D3D373D3D3D363D73000000 DUP3 PUSH1 0x60 SHL PUSH1 0xE8 SHR OR PUSH1 0x0 MSTORE PUSH15 0x5AF43D82803E903D91602B57FD5BF3 DUP3 PUSH1 0x78 SHL OR PUSH1 0x20 MSTORE PUSH1 0x37 PUSH1 0x9 PUSH1 0x0 CREATE SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x505 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2F868F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x551 DUP3 PUSH2 0x526 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x561 DUP2 PUSH2 0x546 JUMP JUMPDEST DUP2 EQ PUSH2 0x56C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x57E DUP2 PUSH2 0x558 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x59A JUMPI PUSH2 0x599 PUSH2 0x51C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5A8 DUP5 DUP3 DUP6 ADD PUSH2 0x56F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5BA DUP2 PUSH2 0x546 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5D5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0x62E DUP3 PUSH2 0x5E5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x64D JUMPI PUSH2 0x64C PUSH2 0x5F6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x660 PUSH2 0x512 JUMP JUMPDEST SWAP1 POP PUSH2 0x66C DUP3 DUP3 PUSH2 0x625 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x68C JUMPI PUSH2 0x68B PUSH2 0x5F6 JUMP JUMPDEST JUMPDEST PUSH2 0x695 DUP3 PUSH2 0x5E5 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 0x6C4 PUSH2 0x6BF DUP5 PUSH2 0x671 JUMP JUMPDEST PUSH2 0x656 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x6E0 JUMPI PUSH2 0x6DF PUSH2 0x5E0 JUMP JUMPDEST JUMPDEST PUSH2 0x6EB DUP5 DUP3 DUP6 PUSH2 0x6A2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x708 JUMPI PUSH2 0x707 PUSH2 0x5DB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x718 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x73C JUMPI PUSH2 0x73B PUSH2 0x5F6 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 0x765 PUSH2 0x760 DUP5 PUSH2 0x721 JUMP JUMPDEST PUSH2 0x656 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 0x788 JUMPI PUSH2 0x787 PUSH2 0x74D JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B1 JUMPI DUP1 PUSH2 0x79D DUP9 DUP3 PUSH2 0x56F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78A JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7D0 JUMPI PUSH2 0x7CF PUSH2 0x5DB JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7E0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x752 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x800 JUMPI PUSH2 0x7FF PUSH2 0x51C JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x81E JUMPI PUSH2 0x81D PUSH2 0x521 JUMP JUMPDEST JUMPDEST PUSH2 0x82A DUP6 DUP3 DUP7 ADD PUSH2 0x6F3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x84B JUMPI PUSH2 0x84A PUSH2 0x521 JUMP JUMPDEST JUMPDEST PUSH2 0x857 DUP6 DUP3 DUP7 ADD PUSH2 0x7BB 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x89B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x880 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B2 DUP3 PUSH2 0x861 JUMP JUMPDEST PUSH2 0x8BC DUP2 DUP6 PUSH2 0x86C JUMP JUMPDEST SWAP4 POP PUSH2 0x8CC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x87D JUMP JUMPDEST PUSH2 0x8D5 DUP2 PUSH2 0x5E5 JUMP JUMPDEST DUP5 ADD 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x915 DUP2 PUSH2 0x546 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x927 DUP4 DUP4 PUSH2 0x90C 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 0x94B DUP3 PUSH2 0x8E0 JUMP JUMPDEST PUSH2 0x955 DUP2 DUP6 PUSH2 0x8EB JUMP JUMPDEST SWAP4 POP PUSH2 0x960 DUP4 PUSH2 0x8FC JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x991 JUMPI DUP2 MLOAD PUSH2 0x978 DUP9 DUP3 PUSH2 0x91B JUMP JUMPDEST SWAP8 POP PUSH2 0x983 DUP4 PUSH2 0x933 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x964 JUMP JUMPDEST POP DUP6 SWAP4 POP 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 0x9B8 DUP2 DUP6 PUSH2 0x8A7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x9CC DUP2 DUP5 PUSH2 0x940 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 BLOBBASEFEE CALLER 0xBE SWAP4 0xCC MOD 0xEF PUSH29 0xE097464FCF2EEA51BBC441DFE2D4FACF0E7283AF86C72064736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "195:689:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;474:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:101:0;;;:::i;:::-;;246:31:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;627:254:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;474:147:7;1531:13:0;:11;:13::i;:::-;590:24:7::1;571:16;;:43;;;;;;;;;;;;;;;;;;474:147:::0;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;246:31:7:-;;;;;;;;;;;;;:::o;1638:85:0:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;627:254:7:-;723:13;739:30;752:16;;;;;;;;;;;739:12;:30::i;:::-;723:46;;796:5;779:34;;;814:4;820:8;779:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;844:30;868:5;844:30;;;;;;:::i;:::-;;;;;;;;713:168;627:254;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;1047:787:1:-;1104:16;1436:48;1418:14;1412:4;1408:25;1402:4;1398:36;1395:90;1389:4;1382:104;1643:32;1626:14;1620:4;1616:25;1613:63;1607:4;1600:77;1718:4;1712;1709:1;1702:21;1690:33;;1766:1;1746:22;;:8;:22;;;1742:86;;1791:26;;;;;;;;;;;;;;1742:86;1047:787;;;:::o;656:96:3:-;709:7;735:10;728:17;;656:96;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334: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:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o;1528:117::-;1637:1;1634;1627:12;1651:117;1760:1;1757;1750:12;1774:102;1815:6;1866:2;1862:7;1857:2;1850:5;1846:14;1842:28;1832:38;;1774:102;;;:::o;1882:180::-;1930:77;1927:1;1920:88;2027:4;2024:1;2017:15;2051:4;2048:1;2041:15;2068:281;2151:27;2173:4;2151:27;:::i;:::-;2143:6;2139:40;2281:6;2269:10;2266:22;2245:18;2233:10;2230:34;2227:62;2224:88;;;2292:18;;:::i;:::-;2224:88;2332:10;2328:2;2321:22;2111:238;2068:281;;:::o;2355:129::-;2389:6;2416:20;;:::i;:::-;2406:30;;2445:33;2473:4;2465:6;2445:33;:::i;:::-;2355:129;;;:::o;2490:308::-;2552:4;2642:18;2634:6;2631:30;2628:56;;;2664:18;;:::i;:::-;2628:56;2702:29;2724:6;2702:29;:::i;:::-;2694:37;;2786:4;2780;2776:15;2768:23;;2490:308;;;:::o;2804:146::-;2901:6;2896:3;2891;2878:30;2942:1;2933:6;2928:3;2924:16;2917:27;2804:146;;;:::o;2956:425::-;3034:5;3059:66;3075:49;3117:6;3075:49;:::i;:::-;3059:66;:::i;:::-;3050:75;;3148:6;3141:5;3134:21;3186:4;3179:5;3175:16;3224:3;3215:6;3210:3;3206:16;3203:25;3200:112;;;3231:79;;:::i;:::-;3200:112;3321:54;3368:6;3363:3;3358;3321:54;:::i;:::-;3040:341;2956:425;;;;;:::o;3401:340::-;3457:5;3506:3;3499:4;3491:6;3487:17;3483:27;3473:122;;3514:79;;:::i;:::-;3473:122;3631:6;3618:20;3656:79;3731:3;3723:6;3716:4;3708:6;3704:17;3656:79;:::i;:::-;3647:88;;3463:278;3401:340;;;;:::o;3747:311::-;3824:4;3914:18;3906:6;3903:30;3900:56;;;3936:18;;:::i;:::-;3900:56;3986:4;3978:6;3974:17;3966:25;;4046:4;4040;4036:15;4028:23;;3747:311;;;:::o;4064:117::-;4173:1;4170;4163:12;4204:710;4300:5;4325:81;4341:64;4398:6;4341:64;:::i;:::-;4325:81;:::i;:::-;4316:90;;4426:5;4455:6;4448:5;4441:21;4489:4;4482:5;4478:16;4471:23;;4542:4;4534:6;4530:17;4522:6;4518:30;4571:3;4563:6;4560:15;4557:122;;;4590:79;;:::i;:::-;4557:122;4705:6;4688:220;4722:6;4717:3;4714:15;4688:220;;;4797:3;4826:37;4859:3;4847:10;4826:37;:::i;:::-;4821:3;4814:50;4893:4;4888:3;4884:14;4877:21;;4764:144;4748:4;4743:3;4739:14;4732:21;;4688:220;;;4692:21;4306:608;;4204:710;;;;;:::o;4937:370::-;5008:5;5057:3;5050:4;5042:6;5038:17;5034:27;5024:122;;5065:79;;:::i;:::-;5024:122;5182:6;5169:20;5207:94;5297:3;5289:6;5282:4;5274:6;5270:17;5207:94;:::i;:::-;5198:103;;5014:293;4937:370;;;;:::o;5313:864::-;5416:6;5424;5473:2;5461:9;5452:7;5448:23;5444:32;5441:119;;;5479:79;;:::i;:::-;5441:119;5627:1;5616:9;5612:17;5599:31;5657:18;5649:6;5646:30;5643:117;;;5679:79;;:::i;:::-;5643:117;5784:63;5839:7;5830:6;5819:9;5815:22;5784:63;:::i;:::-;5774:73;;5570:287;5924:2;5913:9;5909:18;5896:32;5955:18;5947:6;5944:30;5941:117;;;5977:79;;:::i;:::-;5941:117;6082:78;6152:7;6143:6;6132:9;6128:22;6082:78;:::i;:::-;6072:88;;5867:303;5313:864;;;;;:::o;6183:99::-;6235:6;6269:5;6263:12;6253:22;;6183:99;;;:::o;6288:169::-;6372:11;6406:6;6401:3;6394:19;6446:4;6441:3;6437:14;6422:29;;6288:169;;;;:::o;6463:246::-;6544:1;6554:113;6568:6;6565:1;6562:13;6554:113;;;6653:1;6648:3;6644:11;6638:18;6634:1;6629:3;6625:11;6618:39;6590:2;6587:1;6583:10;6578:15;;6554:113;;;6701:1;6692:6;6687:3;6683:16;6676:27;6525:184;6463:246;;;:::o;6715:377::-;6803:3;6831:39;6864:5;6831:39;:::i;:::-;6886:71;6950:6;6945:3;6886:71;:::i;:::-;6879:78;;6966:65;7024:6;7019:3;7012:4;7005:5;7001:16;6966:65;:::i;:::-;7056:29;7078:6;7056:29;:::i;:::-;7051:3;7047:39;7040:46;;6807:285;6715:377;;;;:::o;7098:114::-;7165:6;7199:5;7193:12;7183:22;;7098:114;;;:::o;7218:184::-;7317:11;7351:6;7346:3;7339:19;7391:4;7386:3;7382:14;7367:29;;7218:184;;;;:::o;7408:132::-;7475:4;7498:3;7490:11;;7528:4;7523:3;7519:14;7511:22;;7408:132;;;:::o;7546:108::-;7623:24;7641:5;7623:24;:::i;:::-;7618:3;7611:37;7546:108;;:::o;7660:179::-;7729:10;7750:46;7792:3;7784:6;7750:46;:::i;:::-;7828:4;7823:3;7819:14;7805:28;;7660:179;;;;:::o;7845:113::-;7915:4;7947;7942:3;7938:14;7930:22;;7845:113;;;:::o;7994:732::-;8113:3;8142:54;8190:5;8142:54;:::i;:::-;8212:86;8291:6;8286:3;8212:86;:::i;:::-;8205:93;;8322:56;8372:5;8322:56;:::i;:::-;8401:7;8432:1;8417:284;8442:6;8439:1;8436:13;8417:284;;;8518:6;8512:13;8545:63;8604:3;8589:13;8545:63;:::i;:::-;8538:70;;8631:60;8684:6;8631:60;:::i;:::-;8621:70;;8477:224;8464:1;8461;8457:9;8452:14;;8417:284;;;8421:14;8717:3;8710:10;;8118:608;;;7994:732;;;;:::o;8732:574::-;8923:4;8961:2;8950:9;8946:18;8938:26;;9010:9;9004:4;9000:20;8996:1;8985:9;8981:17;8974:47;9038:78;9111:4;9102:6;9038:78;:::i;:::-;9030:86;;9163:9;9157:4;9153:20;9148:2;9137:9;9133:18;9126:48;9191:108;9294:4;9285:6;9191:108;:::i;:::-;9183:116;;8732:574;;;;;:::o" + }, + "methodIdentifiers": { + "createOffchainResolver(string,address[])": "f00b6b7a", + "offchainResolver()": "7c3fab9d", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "setOffchainResolverAddress(address)": "1d8f29e8", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_offchainResolver\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOffchainResolverAddress\",\"type\":\"address\"}],\"name\":\"OffchainResolverCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_url\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"_signers\",\"type\":\"address[]\"}],\"name\":\"createOffchainResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"offchainResolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_offchainResolverAddress\",\"type\":\"address\"}],\"name\":\"setOffchainResolverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OffchainResolverFactory.sol\":\"OffchainResolverFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"contracts/IExtendedResolver.sol\":{\"keccak256\":\"0x5d81521cfae7d9a4475d27533cd8ed0d3475d369eb0674fd90ffbdbdf292faa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d244d15588785044b54c453ab6dc51c616ab70cb8b9e687d3e54565bcae97760\",\"dweb:/ipfs/QmXz4ZZBTFogdkdTV1mcE3ywvL2agKVZHLNNeRHCKVruYM\"]},\"contracts/OffchainResolver.sol\":{\"keccak256\":\"0x828073926b216d0e14c0488057aa738e53e40e2798f2c6f09e419d2a37bc8920\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9005a4425593cae6645cf7ee589f1668f684b3500945363e09a3e0e88bc1347e\",\"dweb:/ipfs/QmcLrKrkkxkjzejfUPAVkHmrSFgXpMKcKBWRfgdDvXXrsN\"]},\"contracts/OffchainResolverFactory.sol\":{\"keccak256\":\"0x6bf9386e10b7f3e7e44eaabaa99144c7ad2b82ec7c0daf307af5a10c344aaaf8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c940f21605510c9e75d27dedb7e51ffdf1e9327a80c182c285b8c832ab88994\",\"dweb:/ipfs/QmbKFSRDVYG8bGkqgc21oCKwKu4qi1QhC9QScC6eXdGNXS\"]},\"contracts/SignatureVerifier.sol\":{\"keccak256\":\"0xbb4726d25480722076a692c4289c55188b46b0110cf32933076025c9855c4d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fdaaa906189879f3b57a9e7e87ba936b890b6b2bb593c66fedb98e2cb56f993\",\"dweb:/ipfs/QmbTwTG78dmCUuKtp8qPAdrGkysd1Tn9EFEQGRfJHdgZXB\"]},\"contracts/SupportsInterface.sol\":{\"keccak256\":\"0x98cdd1fdac1950916d1e2794f8ae550deda0f0a28d35d1da043273d017d5f8d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a47b737a30773359f056d16f4f4ffc4305490572546c086280eb929750d370f\",\"dweb:/ipfs/QmXsd1G8aXRAK1fmtj3yM9UUjkZR5kwctDDeZEA8Q5tHCQ\"]}},\"version\":1}" + } + }, + "contracts/SignatureVerifier.sol": { + "SignatureVerifier": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203f12530a6d20fd2864673b59a064fde81fec5f086f3c3205900f92fb38e0356364736f6c63430008180033", + "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 EXTCODEHASH SLT MSTORE8 EXP PUSH14 0x20FD2864673B59A064FDE81FEC5F ADDMOD PUSH16 0x3C3205900F92FB38E0356364736F6C63 NUMBER STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "122:1934:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203f12530a6d20fd2864673b59a064fde81fec5f086f3c3205900f92fb38e0356364736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODEHASH SLT MSTORE8 EXP PUSH14 0x20FD2864673B59A064FDE81FEC5F ADDMOD PUSH16 0x3C3205900F92FB38E0356364736F6C63 NUMBER STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "122:1934:8:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SignatureVerifier.sol\":\"SignatureVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"contracts/SignatureVerifier.sol\":{\"keccak256\":\"0xbb4726d25480722076a692c4289c55188b46b0110cf32933076025c9855c4d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fdaaa906189879f3b57a9e7e87ba936b890b6b2bb593c66fedb98e2cb56f993\",\"dweb:/ipfs/QmbTwTG78dmCUuKtp8qPAdrGkysd1Tn9EFEQGRfJHdgZXB\"]}},\"version\":1}" + } + }, + "contracts/SupportsInterface.sol": { + "ISupportsInterface": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "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.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SupportsInterface.sol\":\"ISupportsInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/SupportsInterface.sol\":{\"keccak256\":\"0x98cdd1fdac1950916d1e2794f8ae550deda0f0a28d35d1da043273d017d5f8d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a47b737a30773359f056d16f4f4ffc4305490572546c086280eb929750d370f\",\"dweb:/ipfs/QmXsd1G8aXRAK1fmtj3yM9UUjkZR5kwctDDeZEA8Q5tHCQ\"]}},\"version\":1}" + }, + "SupportsInterface": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "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.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SupportsInterface.sol\":\"SupportsInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/SupportsInterface.sol\":{\"keccak256\":\"0x98cdd1fdac1950916d1e2794f8ae550deda0f0a28d35d1da043273d017d5f8d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a47b737a30773359f056d16f4f4ffc4305490572546c086280eb929750d370f\",\"dweb:/ipfs/QmXsd1G8aXRAK1fmtj3yM9UUjkZR5kwctDDeZEA8Q5tHCQ\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-1/deployed_addresses.json b/ignition/deployments/chain-1/deployed_addresses.json new file mode 100644 index 0000000..abe1f3e --- /dev/null +++ b/ignition/deployments/chain-1/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "OffchainResolverModule#OffchainResolver": "0x9F823e71024A295c2ab83972761158103562cEB5" +} diff --git a/ignition/deployments/chain-1/journal.jsonl b/ignition/deployments/chain-1/journal.jsonl new file mode 100644 index 0000000..f1c0f26 --- /dev/null +++ b/ignition/deployments/chain-1/journal.jsonl @@ -0,0 +1,10 @@ + +{"chainId":1,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"OffchainResolverModule#OffchainResolver","constructorArgs":[],"contractName":"OffchainResolver","dependencies":[],"from":"0x5bb21b30e912871d27182e7b7f9c37c888269cb2","futureId":"OffchainResolverModule#OffchainResolver","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"OffchainResolverModule#OffchainResolver","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b5033600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000885760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200007f9190620002eb565b60405180910390fd5b6200009981620000b060201b60201c565b50620000aa6200017460201b60201c565b6200034a565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000620001866200027e60201b60201c565b90508060000160089054906101000a900460ff1615620001d2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146200027b5767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516200027291906200032d565b60405180910390a15b50565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002d382620002a6565b9050919050565b620002e581620002c6565b82525050565b6000602082019050620003026000830184620002da565b92915050565b600067ffffffffffffffff82169050919050565b620003278162000308565b82525050565b60006020820190506200034460008301846200031c565b92915050565b612581806200035a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018d5780639061b923146101ab578063a3772662146101db578063a644cbdc146101f7578063f2fde38b14610213578063f4d4d2f81461022f576100b4565b806301ffc9a7146100b95780631dcfea09146100e95780635600f04f14610119578063715018a614610137578063736c0d5b146101415780637734340814610171575b600080fd5b6100d360048036038101906100ce919061107b565b61025f565b6040516100e091906110c3565b60405180910390f35b61010360048036038101906100fe91906112c2565b6102d9565b604051610110919061137a565b60405180910390f35b6101216102f1565b60405161012e9190611414565b60405180910390f35b61013f61037f565b005b61015b60048036038101906101569190611436565b610393565b60405161016891906110c3565b60405180910390f35b61018b600480360381019061018691906114c3565b6103b3565b005b6101956103d1565b6040516101a2919061151f565b60405180910390f35b6101c560048036038101906101c09190611590565b6103fa565b6040516101d29190611666565b60405180910390f35b6101f560048036038101906101f091906116de565b6105e6565b005b610211600480360381019061020c919061188f565b6106c6565b005b61022d60048036038101906102289190611436565b610920565b005b61024960048036038101906102449190611590565b6109a6565b6040516102569190611666565b60405180910390f35b60007f9061b923000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d257506102d182610a54565b5b9050919050565b60006102e785858585610abe565b9050949350505050565b600180546102fe90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90611936565b80156103775780601f1061034c57610100808354040283529160200191610377565b820191906000526020600020905b81548152906001019060200180831161035a57829003601f168201915b505050505081565b610387610b05565b6103916000610b8c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6103bb610b05565b8181600191826103cc929190611b28565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000639061b92360e01b8686868660405160240161041d9493929190611c25565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000600167ffffffffffffffff81111561049957610498611197565b5b6040519080825280602002602001820160405280156104cc57816020015b60608152602001906001900390816104b75790505b509050600180546104dc90611936565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611936565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b50505050508160008151811061056e5761056d611c60565b5b602002602001018190525030818363f4d4d2f860e01b8530604051602001610597929190611c8f565b6040516020818303038152906040526040517f556f18300000000000000000000000000000000000000000000000000000000081526004016105dd959493929190611dda565b60405180910390fd5b6105ee610b05565b60005b828290508110156106885760016002600085858581811061061557610614611c60565b5b905060200201602081019061062a9190611436565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506105f1565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d782826040516106ba929190611f05565b60405180910390a15050565b60006106d0610c50565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff1614801561071e5750825b9050600060018367ffffffffffffffff16148015610753575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610761575080155b15610798576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107e85760018560000160086101000a81548160ff0219169083151502179055505b86600190816107f79190611f29565b5060005b86518110156108835760016002600089848151811061081d5761081c611c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107fb565b507fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7866040516108b39190612081565b60405180910390a183156109175760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161090e91906120de565b60405180910390a15b50505050505050565b610928610b05565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361099a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610991919061151f565b60405180910390fd5b6109a381610b8c565b50565b60606000806109b785858989610c78565b91509150600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3e9061216b565b60405180910390fd5b8092505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000848484805190602001208480519060200120604051602001610ae59493929190612281565b604051602081830303815290604052805190602001209050949350505050565b610b0d610d27565b73ffffffffffffffffffffffffffffffffffffffff16610b2b6103d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a57610b4e610d27565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610b81919061151f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6000606060008060008686810190610c9091906122da565b9250925092506000808a8a810190610ca891906123a3565b915091506000610cc3610cbd8387868a610abe565b85610d2f565b9050428567ffffffffffffffff161015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612471565b60405180910390fd5b80869750975050505050505094509492505050565b600033905090565b600080600080610d3f8686610d5b565b925092509250610d4f8282610db7565b82935050505092915050565b60008060006041845103610da05760008060006020870151925060408701519150606087015160001a9050610d9288828585610f1b565b955095509550505050610db0565b60006002855160001b9250925092505b9250925092565b60006003811115610dcb57610dca612491565b5b826003811115610dde57610ddd612491565b5b0315610f175760016003811115610df857610df7612491565b5b826003811115610e0b57610e0a612491565b5b03610e42576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115610e5657610e55612491565b5b826003811115610e6957610e68612491565b5b03610eae578060001c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401610ea591906124cf565b60405180910390fd5b600380811115610ec157610ec0612491565b5b826003811115610ed457610ed3612491565b5b03610f1657806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401610f0d919061137a565b60405180910390fd5b5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c1115610f5b576000600385925092509250611005565b600060018888888860405160008152602001604052604051610f809493929190612506565b6020604051602081039080840390855afa158015610fa2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff657600060016000801b93509350935050611005565b8060008060001b935093509350505b9450945094915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61105881611023565b811461106357600080fd5b50565b6000813590506110758161104f565b92915050565b60006020828403121561109157611090611019565b5b600061109f84828501611066565b91505092915050565b60008115159050919050565b6110bd816110a8565b82525050565b60006020820190506110d860008301846110b4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611109826110de565b9050919050565b611119816110fe565b811461112457600080fd5b50565b60008135905061113681611110565b92915050565b600067ffffffffffffffff82169050919050565b6111598161113c565b811461116457600080fd5b50565b60008135905061117681611150565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6111cf82611186565b810181811067ffffffffffffffff821117156111ee576111ed611197565b5b80604052505050565b600061120161100f565b905061120d82826111c6565b919050565b600067ffffffffffffffff82111561122d5761122c611197565b5b61123682611186565b9050602081019050919050565b82818337600083830152505050565b600061126561126084611212565b6111f7565b90508281526020810184848401111561128157611280611181565b5b61128c848285611243565b509392505050565b600082601f8301126112a9576112a861117c565b5b81356112b9848260208601611252565b91505092915050565b600080600080608085870312156112dc576112db611019565b5b60006112ea87828801611127565b94505060206112fb87828801611167565b935050604085013567ffffffffffffffff81111561131c5761131b61101e565b5b61132887828801611294565b925050606085013567ffffffffffffffff8111156113495761134861101e565b5b61135587828801611294565b91505092959194509250565b6000819050919050565b61137481611361565b82525050565b600060208201905061138f600083018461136b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113cf5780820151818401526020810190506113b4565b60008484015250505050565b60006113e682611395565b6113f081856113a0565b93506114008185602086016113b1565b61140981611186565b840191505092915050565b6000602082019050818103600083015261142e81846113db565b905092915050565b60006020828403121561144c5761144b611019565b5b600061145a84828501611127565b91505092915050565b600080fd5b600080fd5b60008083601f8401126114835761148261117c565b5b8235905067ffffffffffffffff8111156114a05761149f611463565b5b6020830191508360018202830111156114bc576114bb611468565b5b9250929050565b600080602083850312156114da576114d9611019565b5b600083013567ffffffffffffffff8111156114f8576114f761101e565b5b6115048582860161146d565b92509250509250929050565b611519816110fe565b82525050565b60006020820190506115346000830184611510565b92915050565b60008083601f8401126115505761154f61117c565b5b8235905067ffffffffffffffff81111561156d5761156c611463565b5b60208301915083600182028301111561158957611588611468565b5b9250929050565b600080600080604085870312156115aa576115a9611019565b5b600085013567ffffffffffffffff8111156115c8576115c761101e565b5b6115d48782880161153a565b9450945050602085013567ffffffffffffffff8111156115f7576115f661101e565b5b6116038782880161153a565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b600061163882611611565b611642818561161c565b93506116528185602086016113b1565b61165b81611186565b840191505092915050565b60006020820190508181036000830152611680818461162d565b905092915050565b60008083601f84011261169e5761169d61117c565b5b8235905067ffffffffffffffff8111156116bb576116ba611463565b5b6020830191508360208202830111156116d7576116d6611468565b5b9250929050565b600080602083850312156116f5576116f4611019565b5b600083013567ffffffffffffffff8111156117135761171261101e565b5b61171f85828601611688565b92509250509250929050565b600067ffffffffffffffff82111561174657611745611197565b5b61174f82611186565b9050602081019050919050565b600061176f61176a8461172b565b6111f7565b90508281526020810184848401111561178b5761178a611181565b5b611796848285611243565b509392505050565b600082601f8301126117b3576117b261117c565b5b81356117c384826020860161175c565b91505092915050565b600067ffffffffffffffff8211156117e7576117e6611197565b5b602082029050602081019050919050565b600061180b611806846117cc565b6111f7565b9050808382526020820190506020840283018581111561182e5761182d611468565b5b835b8181101561185757806118438882611127565b845260208401935050602081019050611830565b5050509392505050565b600082601f8301126118765761187561117c565b5b81356118868482602086016117f8565b91505092915050565b600080604083850312156118a6576118a5611019565b5b600083013567ffffffffffffffff8111156118c4576118c361101e565b5b6118d08582860161179e565b925050602083013567ffffffffffffffff8111156118f1576118f061101e565b5b6118fd85828601611861565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061194e57607f821691505b60208210810361196157611960611907565b5b50919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611997565b6119de8683611997565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000611a25611a20611a1b846119f6565b611a00565b6119f6565b9050919050565b6000819050919050565b611a3f83611a0a565b611a53611a4b82611a2c565b8484546119a4565b825550505050565b600090565b611a68611a5b565b611a73818484611a36565b505050565b5b81811015611a9757611a8c600082611a60565b600181019050611a79565b5050565b601f821115611adc57611aad81611972565b611ab684611987565b81016020851015611ac5578190505b611ad9611ad185611987565b830182611a78565b50505b505050565b600082821c905092915050565b6000611aff60001984600802611ae1565b1980831691505092915050565b6000611b188383611aee565b9150826002028217905092915050565b611b328383611967565b67ffffffffffffffff811115611b4b57611b4a611197565b5b611b558254611936565b611b60828285611a9b565b6000601f831160018114611b8f5760008415611b7d578287013590505b611b878582611b0c565b865550611bef565b601f198416611b9d86611972565b60005b82811015611bc557848901358255600182019150602085019450602081019050611ba0565b86831015611be25784890135611bde601f891682611aee565b8355505b6001600288020188555050505b50505050505050565b6000611c04838561161c565b9350611c11838584611243565b611c1a83611186565b840190509392505050565b60006040820190508181036000830152611c40818688611bf8565b90508181036020830152611c55818486611bf8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040820190508181036000830152611ca9818561162d565b9050611cb86020830184611510565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000611d0782611395565b611d118185611ceb565b9350611d218185602086016113b1565b611d2a81611186565b840191505092915050565b6000611d418383611cfc565b905092915050565b6000602082019050919050565b6000611d6182611cbf565b611d6b8185611cca565b935083602082028501611d7d85611cdb565b8060005b85811015611db95784840389528151611d9a8582611d35565b9450611da583611d49565b925060208a01995050600181019050611d81565b50829750879550505050505092915050565b611dd481611023565b82525050565b600060a082019050611def6000830188611510565b8181036020830152611e018187611d56565b90508181036040830152611e15818661162d565b9050611e246060830185611dcb565b8181036080830152611e36818461162d565b90509695505050505050565b600082825260208201905092915050565b6000819050919050565b611e66816110fe565b82525050565b6000611e788383611e5d565b60208301905092915050565b6000611e936020840184611127565b905092915050565b6000602082019050919050565b6000611eb48385611e42565b9350611ebf82611e53565b8060005b85811015611ef857611ed58284611e84565b611edf8882611e6c565b9750611eea83611e9b565b925050600181019050611ec3565b5085925050509392505050565b60006020820190508181036000830152611f20818486611ea8565b90509392505050565b611f3282611395565b67ffffffffffffffff811115611f4b57611f4a611197565b5b611f558254611936565b611f60828285611a9b565b600060209050601f831160018114611f935760008415611f81578287015190505b611f8b8582611b0c565b865550611ff3565b601f198416611fa186611972565b60005b82811015611fc957848901518255600182019150602085019450602081019050611fa4565b86831015611fe65784890151611fe2601f891682611aee565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b600061202e82611ffb565b6120388185611e42565b935061204383612006565b8060005b8381101561207457815161205b8882611e6c565b975061206683612016565b925050600181019050612047565b5085935050505092915050565b6000602082019050818103600083015261209b8184612023565b905092915050565b6000819050919050565b60006120c86120c36120be846120a3565b611a00565b61113c565b9050919050565b6120d8816120ad565b82525050565b60006020820190506120f360008301846120cf565b92915050565b7f5369676e617475726556657269666965723a20496e76616c696420736967617460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b60006121556023836113a0565b9150612160826120f9565b604082019050919050565b6000602082019050818103600083015261218481612148565b9050919050565b600081905092915050565b7f1900000000000000000000000000000000000000000000000000000000000000600082015250565b60006121cc60028361218b565b91506121d782612196565b600282019050919050565b60008160601b9050919050565b60006121fa826121e2565b9050919050565b600061220c826121ef565b9050919050565b61222461221f826110fe565b612201565b82525050565b60008160c01b9050919050565b60006122428261222a565b9050919050565b61225a6122558261113c565b612237565b82525050565b6000819050919050565b61227b61227682611361565b612260565b82525050565b600061228c826121bf565b91506122988287612213565b6014820191506122a88286612249565b6008820191506122b8828561226a565b6020820191506122c8828461226a565b60208201915081905095945050505050565b6000806000606084860312156122f3576122f2611019565b5b600084013567ffffffffffffffff8111156123115761231061101e565b5b61231d86828701611294565b935050602061232e86828701611167565b925050604084013567ffffffffffffffff81111561234f5761234e61101e565b5b61235b86828701611294565b9150509250925092565b6000612370826110de565b9050919050565b61238081612365565b811461238b57600080fd5b50565b60008135905061239d81612377565b92915050565b600080604083850312156123ba576123b9611019565b5b600083013567ffffffffffffffff8111156123d8576123d761101e565b5b6123e485828601611294565b92505060206123f58582860161238e565b9150509250929050565b7f5369676e617475726556657269666965723a205369676e61747572652065787060008201527f6972656400000000000000000000000000000000000000000000000000000000602082015250565b600061245b6024836113a0565b9150612466826123ff565b604082019050919050565b6000602082019050818103600083015261248a8161244e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6124c9816119f6565b82525050565b60006020820190506124e460008301846124c0565b92915050565b600060ff82169050919050565b612500816124ea565b82525050565b600060808201905061251b600083018761136b565b61252860208301866124f7565b612535604083018561136b565b612542606083018461136b565b9594505050505056fea2646970667358221220767487219e85098f12d1bd65ea4f86a278f2d3a91c85914eb8d07034fa4d93a264736f6c63430008180033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"OffchainResolverModule#OffchainResolver","networkInteractionId":1,"nonce":37,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"13165209573"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"885293"}},"hash":"0x4aadad23c656574600e62f5431330b856b50a9ab47a7c8e126c8e3c0588b1d2f"},"type":"TRANSACTION_SEND"} +{"futureId":"OffchainResolverModule#OffchainResolver","hash":"0x4aadad23c656574600e62f5431330b856b50a9ab47a7c8e126c8e3c0588b1d2f","networkInteractionId":1,"receipt":{"blockHash":"0x0b2505b611000efd9bae9f0f9abae631768c56c852d44766e40e1bdfbb8a8499","blockNumber":19869651,"contractAddress":"0x9F823e71024A295c2ab83972761158103562cEB5","logs":[{"address":"0x9F823e71024A295c2ab83972761158103562cEB5","data":"0x","logIndex":436,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000005bb21b30e912871d27182e7b7f9c37c888269cb2"]},{"address":"0x9F823e71024A295c2ab83972761158103562cEB5","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":437,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"OffchainResolverModule#OffchainResolver","result":{"address":"0x9F823e71024A295c2ab83972761158103562cEB5","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"args":[["0x47D4c3Be0d05D100E739Bda560Fe0243b2702FdE"]],"artifactId":"OffchainResolverModule#OffchainResolver","contractAddress":"0x9F823e71024A295c2ab83972761158103562cEB5","dependencies":["OffchainResolverModule#OffchainResolver"],"from":"0x5bb21b30e912871d27182e7b7f9c37c888269cb2","functionName":"setSigners","futureId":"OffchainResolverModule#OffchainResolver.setSigners","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"OffchainResolverModule#OffchainResolver.setSigners","networkInteraction":{"data":"0xa37726620000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000047d4c3be0d05d100e739bda560fe0243b2702fde","id":1,"to":"0x9F823e71024A295c2ab83972761158103562cEB5","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"OffchainResolverModule#OffchainResolver.setSigners","networkInteractionId":1,"nonce":38,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"13948255228"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"940900"}},"hash":"0x1715221b7bc1a9bcd85768a37eb199dff9cf1eabbd92299c57847b5155dbac97"},"type":"TRANSACTION_SEND"} \ No newline at end of file diff --git a/ignition/modules/OffchainResolver.ts b/ignition/modules/OffchainResolver.ts new file mode 100644 index 0000000..227044d --- /dev/null +++ b/ignition/modules/OffchainResolver.ts @@ -0,0 +1,19 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; + +const INITIAL_URL = "https://api.starknet.id/crosschain/ethereum/resolve"; +const INITIAL_SIGNER = "0x47D4c3Be0d05D100E739Bda560Fe0243b2702FdE"; + +const OffchainResolverModule = buildModule("OffchainResolverModule", (m) => { + // Deploy the OffchainResolver contract + const offchainResolver = m.contract("OffchainResolver"); + + // Set the URL + m.call(offchainResolver, "setURL", [INITIAL_URL]); + + // Set the signers + m.call(offchainResolver, "setSigners", [[INITIAL_SIGNER]]); + + return { offchainResolver }; +}); + +export default OffchainResolverModule;