{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"shanghai","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdUtils.sol","id":11976,"exportedSymbols":{"IMulticall3":[32461],"MockERC20":[33038],"MockERC721":[33643],"StdUtils":[11975],"VmSafe":[15231]},"nodeType":"SourceUnit","src":"32:10624:11","nodes":[{"id":11191,"nodeType":"PragmaDirective","src":"32:31:11","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11192,"nodeType":"PragmaDirective","src":"65:33:11","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11194,"nodeType":"ImportDirective","src":"100:57:11","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","file":"./interfaces/IMulticall3.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":32462,"symbolAliases":[{"foreign":{"id":11193,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"108:11:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11196,"nodeType":"ImportDirective","src":"158:48:11","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","file":"./mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":33039,"symbolAliases":[{"foreign":{"id":11195,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33038,"src":"166:9:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11198,"nodeType":"ImportDirective","src":"207:50:11","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","file":"./mocks/MockERC721.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":33658,"symbolAliases":[{"foreign":{"id":11197,"name":"MockERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33643,"src":"215:10:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11200,"nodeType":"ImportDirective","src":"258:32:11","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":15819,"symbolAliases":[{"foreign":{"id":11199,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"266:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11975,"nodeType":"ContractDefinition","src":"292:10363:11","nodes":[{"id":11206,"nodeType":"VariableDeclaration","src":"535:96:11","nodes":[],"constant":true,"mutability":"constant","name":"multicall","nameLocation":"564:9:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"},"typeName":{"id":11202,"nodeType":"UserDefinedTypeName","pathNode":{"id":11201,"name":"IMulticall3","nameLocations":["535:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":32461,"src":"535:11:11"},"referencedDeclaration":32461,"src":"535:11:11","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"}},"value":{"arguments":[{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":11204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11203,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"576:11:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32461_$","typeString":"type(contract IMulticall3)"}},"id":11205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"}},"visibility":"private"},{"id":11223,"nodeType":"VariableDeclaration","src":"637:92:11","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"661:2:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"},"typeName":{"id":11208,"nodeType":"UserDefinedTypeName","pathNode":{"id":11207,"name":"VmSafe","nameLocations":["637:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":15231,"src":"637:6:11"},"referencedDeclaration":15231,"src":"637:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":11217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"707:17:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":11216,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"697:9:11","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"689:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11214,"name":"uint256","nodeType":"ElementaryTypeName","src":"689:7:11","typeDescriptions":{}}},"id":11219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11212,"name":"uint160","nodeType":"ElementaryTypeName","src":"681:7:11","typeDescriptions":{}}},"id":11220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:46:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"673:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11210,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:11","typeDescriptions":{}}},"id":11221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11209,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"666:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15231_$","typeString":"type(contract VmSafe)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:63:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"visibility":"private"},{"id":11226,"nodeType":"VariableDeclaration","src":"735:86:11","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"760:16:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11224,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":11229,"nodeType":"VariableDeclaration","src":"827:127:11","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"852:14:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11227,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":11228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:77:11","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":11232,"nodeType":"VariableDeclaration","src":"960:129:11","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"985:15:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11230,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":11231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1011:78:11","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"private"},{"id":11235,"nodeType":"VariableDeclaration","src":"1095:125:11","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1120:11:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1095:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":11234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:78:11","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":11238,"nodeType":"VariableDeclaration","src":"1339:85:11","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1364:15:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11236,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":11237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"private"},{"id":11368,"nodeType":"FunctionDefinition","src":"1646:1263:11","nodes":[],"body":{"id":11367,"nodeType":"Block","src":"1746:1163:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11250,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"1764:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11251,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"1771:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1764:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1776:64:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""},"value":"StdUtils bound(uint256,uint256,uint256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""}],"id":11249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1756:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:85:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"1756:85:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11256,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2070:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11257,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2075:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2070:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11259,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2082:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11260,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2087:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11265,"nodeType":"IfStatement","src":"2066:34:11","trueBody":{"expression":{"id":11263,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2099:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11264,"nodeType":"Return","src":"2092:8:11"}},{"assignments":[11267],"declarations":[{"constant":false,"id":11267,"mutability":"mutable","name":"size","nameLocation":"2119:4:11","nodeType":"VariableDeclaration","scope":11367,"src":"2111:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11268,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2126:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11269,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2132:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2138:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2126:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2111:28:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11274,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2329:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":11275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2329:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11277,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2339:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11278,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2346:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11285,"nodeType":"IfStatement","src":"2325:38:11","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11281,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2356:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11282,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2362:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2356:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11284,"nodeType":"Return","src":"2349:14:11"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11286,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2377:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11287,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2382:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":11288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2382:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2377:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11291,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2401:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11292,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2408:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11293,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2422:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2408:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2401:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2377:46:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11304,"nodeType":"IfStatement","src":"2373:82:11","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11297,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2432:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11298,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2439:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11299,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2453:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2438:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11303,"nodeType":"Return","src":"2425:30:11"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11305,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2555:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11306,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2559:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11335,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2734:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11336,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2738:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11365,"nodeType":"IfStatement","src":"2730:173:11","trueBody":{"id":11364,"nodeType":"Block","src":"2743:160:11","statements":[{"assignments":[11339],"declarations":[{"constant":false,"id":11339,"mutability":"mutable","name":"diff","nameLocation":"2765:4:11","nodeType":"VariableDeclaration","scope":11364,"src":"2757:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11343,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11340,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2772:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11341,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2778:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2757:22:11"},{"assignments":[11345],"declarations":[{"constant":false,"id":11345,"mutability":"mutable","name":"rem","nameLocation":"2801:3:11","nodeType":"VariableDeclaration","scope":11364,"src":"2793:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11344,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11349,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11346,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11339,"src":"2807:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11347,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2814:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2793:25:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11350,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"2836:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2843:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2836:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11355,"nodeType":"IfStatement","src":"2832:24:11","trueBody":{"expression":{"id":11353,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2853:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11354,"nodeType":"Return","src":"2846:10:11"}},{"expression":{"id":11362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11356,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"2870:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11357,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2879:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11358,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"2885:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2879:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2870:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11363,"nodeType":"ExpressionStatement","src":"2870:22:11"}]}},"id":11366,"nodeType":"IfStatement","src":"2551:352:11","trueBody":{"id":11334,"nodeType":"Block","src":"2564:160:11","statements":[{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"mutability":"mutable","name":"diff","nameLocation":"2586:4:11","nodeType":"VariableDeclaration","scope":11334,"src":"2578:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11310,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2593:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11311,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2597:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2593:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2578:22:11"},{"assignments":[11315],"declarations":[{"constant":false,"id":11315,"mutability":"mutable","name":"rem","nameLocation":"2622:3:11","nodeType":"VariableDeclaration","scope":11334,"src":"2614:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11314,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11319,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11316,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"2628:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11317,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2635:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2614:25:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11320,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"2657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2664:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11325,"nodeType":"IfStatement","src":"2653:24:11","trueBody":{"expression":{"id":11323,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2674:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11324,"nodeType":"Return","src":"2667:10:11"}},{"expression":{"id":11332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"2691:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11327,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2700:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11328,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"2706:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2700:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2700:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2691:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11333,"nodeType":"ExpressionStatement","src":"2691:22:11"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"1655:6:11","parameters":{"id":11245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"x","nameLocation":"1670:1:11","nodeType":"VariableDeclaration","scope":11368,"src":"1662:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11242,"mutability":"mutable","name":"min","nameLocation":"1681:3:11","nodeType":"VariableDeclaration","scope":11368,"src":"1673:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11241,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11244,"mutability":"mutable","name":"max","nameLocation":"1694:3:11","nodeType":"VariableDeclaration","scope":11368,"src":"1686:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1661:37:11"},"returnParameters":{"id":11248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11247,"mutability":"mutable","name":"result","nameLocation":"1738:6:11","nodeType":"VariableDeclaration","scope":11368,"src":"1730:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11246,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1729:16:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11393,"nodeType":"FunctionDefinition","src":"2915:199:11","nodes":[],"body":{"id":11392,"nodeType":"Block","src":"3014:100:11","nodes":[],"statements":[{"expression":{"id":11385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11379,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11377,"src":"3024:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11381,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11370,"src":"3040:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11382,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"3043:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11383,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11374,"src":"3048:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11380,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11368,"src":"3033:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3033:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3024:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11386,"nodeType":"ExpressionStatement","src":"3024:28:11"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":11388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3084:14:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"id":11389,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11377,"src":"3100:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11387,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11957,"src":"3062:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":11390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3062:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11391,"nodeType":"ExpressionStatement","src":"3062:45:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"2924:5:11","parameters":{"id":11375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11370,"mutability":"mutable","name":"x","nameLocation":"2938:1:11","nodeType":"VariableDeclaration","scope":11393,"src":"2930:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11369,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11372,"mutability":"mutable","name":"min","nameLocation":"2949:3:11","nodeType":"VariableDeclaration","scope":11393,"src":"2941:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11371,"name":"uint256","nodeType":"ElementaryTypeName","src":"2941:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11374,"mutability":"mutable","name":"max","nameLocation":"2962:3:11","nodeType":"VariableDeclaration","scope":11393,"src":"2954:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11373,"name":"uint256","nodeType":"ElementaryTypeName","src":"2954:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:37:11"},"returnParameters":{"id":11378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11377,"mutability":"mutable","name":"result","nameLocation":"3006:6:11","nodeType":"VariableDeclaration","scope":11393,"src":"2998:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11376,"name":"uint256","nodeType":"ElementaryTypeName","src":"2998:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2997:16:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11515,"nodeType":"FunctionDefinition","src":"3120:1145:11","nodes":[],"body":{"id":11514,"nodeType":"Block","src":"3216:1049:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11405,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3234:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11406,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"3241:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3234:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e6428696e743235362c696e743235362c696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3246:61:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""},"value":"StdUtils bound(int256,int256,int256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""}],"id":11404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3226:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3226:82:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11410,"nodeType":"ExpressionStatement","src":"3226:82:11"},{"assignments":[11412],"declarations":[{"constant":false,"id":11412,"mutability":"mutable","name":"_x","nameLocation":"3744:2:11","nodeType":"VariableDeclaration","scope":11514,"src":"3736:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11411,"name":"uint256","nodeType":"ElementaryTypeName","src":"3736:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11434,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11413,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"3749:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11428,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"3803:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11426,"name":"uint256","nodeType":"ElementaryTypeName","src":"3795:7:11","typeDescriptions":{}}},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11430,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3808:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3795:27:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3794:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3749:74:11","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11416,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3758:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3775:11:11","subExpression":{"arguments":[{"id":11419,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"3784:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3776:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11417,"name":"uint256","nodeType":"ElementaryTypeName","src":"3776:7:11","typeDescriptions":{}}},"id":11420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3776:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3758:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3789:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3758:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3757:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3736:87:11"},{"assignments":[11436],"declarations":[{"constant":false,"id":11436,"mutability":"mutable","name":"_min","nameLocation":"3841:4:11","nodeType":"VariableDeclaration","scope":11514,"src":"3833:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3833:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11458,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11437,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3848:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3848:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11452,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3906:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3898:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3898:7:11","typeDescriptions":{}}},"id":11453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3898:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11454,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3913:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3898:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3897:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3848:80:11","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11440,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3859:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3876:13:11","subExpression":{"arguments":[{"id":11443,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3885:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3877:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:11","typeDescriptions":{}}},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3859:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3858:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3833:95:11"},{"assignments":[11460],"declarations":[{"constant":false,"id":11460,"mutability":"mutable","name":"_max","nameLocation":"3946:4:11","nodeType":"VariableDeclaration","scope":11514,"src":"3938:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11459,"name":"uint256","nodeType":"ElementaryTypeName","src":"3938:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11482,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11461,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"3953:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3959:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3953:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11476,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"4011:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4003:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11474,"name":"uint256","nodeType":"ElementaryTypeName","src":"4003:7:11","typeDescriptions":{}}},"id":11477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4003:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11478,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4018:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4003:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4002:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3953:80:11","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11464,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3964:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3981:13:11","subExpression":{"arguments":[{"id":11467,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"3990:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3982:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11465,"name":"uint256","nodeType":"ElementaryTypeName","src":"3982:7:11","typeDescriptions":{}}},"id":11468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3964:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3997:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3964:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11473,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3963:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3938:95:11"},{"assignments":[11484],"declarations":[{"constant":false,"id":11484,"mutability":"mutable","name":"y","nameLocation":"4052:1:11","nodeType":"VariableDeclaration","scope":11514,"src":"4044:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11483,"name":"uint256","nodeType":"ElementaryTypeName","src":"4044:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11490,"initialValue":{"arguments":[{"id":11486,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"4063:2:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11487,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"4067:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11488,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11460,"src":"4073:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11485,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11368,"src":"4056:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4044:34:11"},{"expression":{"id":11512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11491,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11402,"src":"4166:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11492,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"4175:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11493,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4179:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4175:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11507,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"4239:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11508,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4243:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4232:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11505,"name":"int256","nodeType":"ElementaryTypeName","src":"4232:6:11","typeDescriptions":{}}},"id":11510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4232:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4175:83:11","trueExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"4203:21:11","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11497,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4205:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11498,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"4222:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4205:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11500,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4204:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4227:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4203:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4196:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11495,"name":"int256","nodeType":"ElementaryTypeName","src":"4196:6:11","typeDescriptions":{}}},"id":11504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4196:33:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4166:92:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11513,"nodeType":"ExpressionStatement","src":"4166:92:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"3129:6:11","parameters":{"id":11400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11395,"mutability":"mutable","name":"x","nameLocation":"3143:1:11","nodeType":"VariableDeclaration","scope":11515,"src":"3136:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11394,"name":"int256","nodeType":"ElementaryTypeName","src":"3136:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11397,"mutability":"mutable","name":"min","nameLocation":"3153:3:11","nodeType":"VariableDeclaration","scope":11515,"src":"3146:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11396,"name":"int256","nodeType":"ElementaryTypeName","src":"3146:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11399,"mutability":"mutable","name":"max","nameLocation":"3165:3:11","nodeType":"VariableDeclaration","scope":11515,"src":"3158:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11398,"name":"int256","nodeType":"ElementaryTypeName","src":"3158:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3135:34:11"},"returnParameters":{"id":11403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11402,"mutability":"mutable","name":"result","nameLocation":"3208:6:11","nodeType":"VariableDeclaration","scope":11515,"src":"3201:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11401,"name":"int256","nodeType":"ElementaryTypeName","src":"3201:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3200:15:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11543,"nodeType":"FunctionDefinition","src":"4271:208:11","nodes":[],"body":{"id":11542,"nodeType":"Block","src":"4366:113:11","nodes":[],"statements":[{"expression":{"id":11532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11526,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11524,"src":"4376:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11528,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"4392:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11529,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"4395:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11530,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"4400:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11527,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11515,"src":"4385:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":11531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4376:28:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11533,"nodeType":"ExpressionStatement","src":"4376:28:11"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":11535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4436:14:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"arguments":[{"id":11538,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11524,"src":"4464:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":11536,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"4452:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"id":11537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4455:8:11","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13582,"src":"4452:11:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":11539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4452:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11534,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11974,"src":"4414:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4414:58:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11541,"nodeType":"ExpressionStatement","src":"4414:58:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"4280:5:11","parameters":{"id":11522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11517,"mutability":"mutable","name":"x","nameLocation":"4293:1:11","nodeType":"VariableDeclaration","scope":11543,"src":"4286:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11516,"name":"int256","nodeType":"ElementaryTypeName","src":"4286:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11519,"mutability":"mutable","name":"min","nameLocation":"4303:3:11","nodeType":"VariableDeclaration","scope":11543,"src":"4296:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11518,"name":"int256","nodeType":"ElementaryTypeName","src":"4296:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11521,"mutability":"mutable","name":"max","nameLocation":"4315:3:11","nodeType":"VariableDeclaration","scope":11543,"src":"4308:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11520,"name":"int256","nodeType":"ElementaryTypeName","src":"4308:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4285:34:11"},"returnParameters":{"id":11525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11524,"mutability":"mutable","name":"result","nameLocation":"4358:6:11","nodeType":"VariableDeclaration","scope":11543,"src":"4351:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11523,"name":"int256","nodeType":"ElementaryTypeName","src":"4351:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4350:15:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11561,"nodeType":"FunctionDefinition","src":"4485:160:11","nodes":[],"body":{"id":11560,"nodeType":"Block","src":"4577:68:11","nodes":[],"statements":[{"expression":{"id":11558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11550,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11548,"src":"4587:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11552,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"4603:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4615:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11554,"name":"SECP256K1_ORDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11232,"src":"4618:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4636:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4618:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11551,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11368,"src":"4596:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4587:51:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11559,"nodeType":"ExpressionStatement","src":"4587:51:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"boundPrivateKey","nameLocation":"4494:15:11","parameters":{"id":11546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11545,"mutability":"mutable","name":"privateKey","nameLocation":"4518:10:11","nodeType":"VariableDeclaration","scope":11561,"src":"4510:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11544,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4509:20:11"},"returnParameters":{"id":11549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11548,"mutability":"mutable","name":"result","nameLocation":"4569:6:11","nodeType":"VariableDeclaration","scope":11561,"src":"4561:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11547,"name":"uint256","nodeType":"ElementaryTypeName","src":"4561:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4560:16:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11595,"nodeType":"FunctionDefinition","src":"4651:259:11","nodes":[],"body":{"id":11594,"nodeType":"Block","src":"4728:182:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11569,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4746:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:11","memberName":"length","nodeType":"MemberAccess","src":"4746:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":11571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4758:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4746:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c73206279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":11573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4762:55:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdUtils bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":11568,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4738:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4738:80:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11575,"nodeType":"ExpressionStatement","src":"4738:80:11"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":11582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4873:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":11583,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4878:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4880:6:11","memberName":"length","nodeType":"MemberAccess","src":"4878:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4863:9:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":11580,"name":"bytes","nodeType":"ElementaryTypeName","src":"4867:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":11586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4863:24:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11587,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4889:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4846:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4850:12:11","memberName":"encodePacked","nodeType":"MemberAccess","src":"4846:16:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4846:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4894:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11589,"name":"uint256","nodeType":"ElementaryTypeName","src":"4894:7:11","typeDescriptions":{}}}],"id":11591,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4893:9:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11576,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4835:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4839:6:11","memberName":"decode","nodeType":"MemberAccess","src":"4835:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:68:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11567,"id":11593,"nodeType":"Return","src":"4828:75:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToUint","nameLocation":"4660:11:11","parameters":{"id":11564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11563,"mutability":"mutable","name":"b","nameLocation":"4685:1:11","nodeType":"VariableDeclaration","scope":11595,"src":"4672:14:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11562,"name":"bytes","nodeType":"ElementaryTypeName","src":"4672:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4671:16:11"},"returnParameters":{"id":11567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11595,"src":"4719:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11565,"name":"uint256","nodeType":"ElementaryTypeName","src":"4719:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4718:9:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11616,"nodeType":"FunctionDefinition","src":"5144:281:11","nodes":[],"body":{"id":11615,"nodeType":"Block","src":"5247:178:11","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d707574654372656174654164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d707574654372656174654164647265737320696e73746561642e","id":11606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5279:81:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""},"value":"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""}],"id":11605,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11940,"src":"5257:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:104:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11608,"nodeType":"ExpressionStatement","src":"5257:104:11"},{"expression":{"arguments":[{"id":11611,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11598,"src":"5402:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11612,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11600,"src":"5412:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"5378:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:20:11","memberName":"computeCreateAddress","nodeType":"MemberAccess","referencedDeclaration":15073,"src":"5378:23:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) pure external returns (address)"}},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11604,"id":11614,"nodeType":"Return","src":"5371:47:11"}]},"documentation":{"id":11596,"nodeType":"StructuredDocumentation","src":"4916:223:11","text":"@dev Compute the address a contract will be deployed at for a given deployer address and nonce\n @notice adapted from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"5153:20:11","parameters":{"id":11601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11598,"mutability":"mutable","name":"deployer","nameLocation":"5182:8:11","nodeType":"VariableDeclaration","scope":11616,"src":"5174:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11597,"name":"address","nodeType":"ElementaryTypeName","src":"5174:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11600,"mutability":"mutable","name":"nonce","nameLocation":"5200:5:11","nodeType":"VariableDeclaration","scope":11616,"src":"5192:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11599,"name":"uint256","nodeType":"ElementaryTypeName","src":"5192:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5173:33:11"},"returnParameters":{"id":11604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11616,"src":"5238:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11602,"name":"address","nodeType":"ElementaryTypeName","src":"5238:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5237:9:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11639,"nodeType":"FunctionDefinition","src":"5431:355:11","nodes":[],"body":{"id":11638,"nodeType":"Block","src":"5592:194:11","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":11628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5624:83:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":11627,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11940,"src":"5602:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5602:106:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11630,"nodeType":"ExpressionStatement","src":"5602:106:11"},{"expression":{"arguments":[{"id":11633,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"5750:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11634,"name":"initcodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11620,"src":"5756:12:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11635,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11622,"src":"5770:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"5725:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"id":11632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5728:21:11","memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":15053,"src":"5725:24:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure external returns (address)"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5725:54:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11626,"id":11637,"nodeType":"Return","src":"5718:61:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5440:21:11","parameters":{"id":11623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11618,"mutability":"mutable","name":"salt","nameLocation":"5470:4:11","nodeType":"VariableDeclaration","scope":11639,"src":"5462:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5462:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11620,"mutability":"mutable","name":"initcodeHash","nameLocation":"5484:12:11","nodeType":"VariableDeclaration","scope":11639,"src":"5476:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5476:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11622,"mutability":"mutable","name":"deployer","nameLocation":"5506:8:11","nodeType":"VariableDeclaration","scope":11639,"src":"5498:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"5498:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:54:11"},"returnParameters":{"id":11626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11639,"src":"5579:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11624,"name":"address","nodeType":"ElementaryTypeName","src":"5579:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5578:9:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11660,"nodeType":"FunctionDefinition","src":"5895:283:11","nodes":[],"body":{"id":11659,"nodeType":"Block","src":"5994:184:11","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":11650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6026:83:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":11649,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11940,"src":"6004:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6004:106:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11652,"nodeType":"ExpressionStatement","src":"6004:106:11"},{"expression":{"arguments":[{"id":11655,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11642,"src":"6152:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11656,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"6158:12:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11653,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"6127:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"id":11654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6130:21:11","memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":15063,"src":"6127:24:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) pure external returns (address)"}},"id":11657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:44:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11648,"id":11658,"nodeType":"Return","src":"6120:51:11"}]},"documentation":{"id":11640,"nodeType":"StructuredDocumentation","src":"5792:98:11","text":"@dev returns the address of a contract created with CREATE2 using the default CREATE2 deployer"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5904:21:11","parameters":{"id":11645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11642,"mutability":"mutable","name":"salt","nameLocation":"5934:4:11","nodeType":"VariableDeclaration","scope":11660,"src":"5926:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5926:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11644,"mutability":"mutable","name":"initCodeHash","nameLocation":"5948:12:11","nodeType":"VariableDeclaration","scope":11660,"src":"5940:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5940:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5925:36:11"},"returnParameters":{"id":11648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11660,"src":"5985:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11646,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5984:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11689,"nodeType":"FunctionDefinition","src":"6240:225:11","nodes":[],"body":{"id":11688,"nodeType":"Block","src":"6377:88:11","nodes":[],"statements":[{"expression":{"id":11678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11673,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"6387:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":11676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6394:13:11","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC20_$33038_$","typeString":"function () returns (contract MockERC20)"},"typeName":{"id":11675,"nodeType":"UserDefinedTypeName","pathNode":{"id":11674,"name":"MockERC20","nameLocations":["6398:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":33038,"src":"6398:9:11"},"referencedDeclaration":33038,"src":"6398:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"}}},"id":11677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6394:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"}},"src":"6387:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"}},"id":11679,"nodeType":"ExpressionStatement","src":"6387:22:11"},{"expression":{"arguments":[{"id":11683,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"6435:4:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11684,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11665,"src":"6441:6:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11685,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11667,"src":"6449:8:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":11680,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"6419:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6424:10:11","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":32606,"src":"6419:15:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (string memory,string memory,uint8) external"}},"id":11686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:39:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11687,"nodeType":"ExpressionStatement","src":"6419:39:11"}]},"documentation":{"id":11661,"nodeType":"StructuredDocumentation","src":"6184:51:11","text":"@dev returns an initialized mock ERC20 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC20","nameLocation":"6249:15:11","parameters":{"id":11668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11663,"mutability":"mutable","name":"name","nameLocation":"6279:4:11","nodeType":"VariableDeclaration","scope":11689,"src":"6265:18:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11662,"name":"string","nodeType":"ElementaryTypeName","src":"6265:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11665,"mutability":"mutable","name":"symbol","nameLocation":"6299:6:11","nodeType":"VariableDeclaration","scope":11689,"src":"6285:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11664,"name":"string","nodeType":"ElementaryTypeName","src":"6285:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11667,"mutability":"mutable","name":"decimals","nameLocation":"6313:8:11","nodeType":"VariableDeclaration","scope":11689,"src":"6307:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11666,"name":"uint8","nodeType":"ElementaryTypeName","src":"6307:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6264:58:11"},"returnParameters":{"id":11672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11671,"mutability":"mutable","name":"mock","nameLocation":"6367:4:11","nodeType":"VariableDeclaration","scope":11689,"src":"6357:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"},"typeName":{"id":11670,"nodeType":"UserDefinedTypeName","pathNode":{"id":11669,"name":"MockERC20","nameLocations":["6357:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":33038,"src":"6357:9:11"},"referencedDeclaration":33038,"src":"6357:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33038","typeString":"contract MockERC20"}},"visibility":"internal"}],"src":"6356:16:11"},"scope":11975,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11715,"nodeType":"FunctionDefinition","src":"6528:182:11","nodes":[],"body":{"id":11714,"nodeType":"Block","src":"6631:79:11","nodes":[],"statements":[{"expression":{"id":11705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11700,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"6641:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":11703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6648:14:11","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC721_$33643_$","typeString":"function () returns (contract MockERC721)"},"typeName":{"id":11702,"nodeType":"UserDefinedTypeName","pathNode":{"id":11701,"name":"MockERC721","nameLocations":["6652:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":33643,"src":"6652:10:11"},"referencedDeclaration":33643,"src":"6652:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"}}},"id":11704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:16:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"}},"src":"6641:23:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"}},"id":11706,"nodeType":"ExpressionStatement","src":"6641:23:11"},{"expression":{"arguments":[{"id":11710,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11692,"src":"6690:4:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11711,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11694,"src":"6696:6:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11707,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"6674:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"}},"id":11709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6679:10:11","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":33201,"src":"6674:15:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11713,"nodeType":"ExpressionStatement","src":"6674:29:11"}]},"documentation":{"id":11690,"nodeType":"StructuredDocumentation","src":"6471:52:11","text":"@dev returns an initialized mock ERC721 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC721","nameLocation":"6537:16:11","parameters":{"id":11695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11692,"mutability":"mutable","name":"name","nameLocation":"6568:4:11","nodeType":"VariableDeclaration","scope":11715,"src":"6554:18:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11691,"name":"string","nodeType":"ElementaryTypeName","src":"6554:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11694,"mutability":"mutable","name":"symbol","nameLocation":"6588:6:11","nodeType":"VariableDeclaration","scope":11715,"src":"6574:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11693,"name":"string","nodeType":"ElementaryTypeName","src":"6574:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6553:42:11"},"returnParameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11698,"mutability":"mutable","name":"mock","nameLocation":"6625:4:11","nodeType":"VariableDeclaration","scope":11715,"src":"6614:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"},"typeName":{"id":11697,"nodeType":"UserDefinedTypeName","pathNode":{"id":11696,"name":"MockERC721","nameLocations":["6614:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":33643,"src":"6614:10:11"},"referencedDeclaration":33643,"src":"6614:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33643","typeString":"contract MockERC721"}},"visibility":"internal"}],"src":"6613:17:11"},"scope":11975,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11729,"nodeType":"FunctionDefinition","src":"6934:135:11","nodes":[],"body":{"id":11728,"nodeType":"Block","src":"7015:54:11","nodes":[],"statements":[{"expression":{"arguments":[{"id":11724,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11718,"src":"7045:12:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"","id":11725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:2:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":11723,"name":"hashInitCode","nodeType":"Identifier","overloadedDeclarations":[11729,11748],"referencedDeclaration":11748,"src":"7032:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory,bytes memory) pure returns (bytes32)"}},"id":11726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:30:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11722,"id":11727,"nodeType":"Return","src":"7025:37:11"}]},"documentation":{"id":11716,"nodeType":"StructuredDocumentation","src":"6716:213:11","text":"@dev returns the hash of the init code (creation code + no args) used in CREATE2 with no constructor arguments\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"6943:12:11","parameters":{"id":11719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11718,"mutability":"mutable","name":"creationCode","nameLocation":"6969:12:11","nodeType":"VariableDeclaration","scope":11729,"src":"6956:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11717,"name":"bytes","nodeType":"ElementaryTypeName","src":"6956:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6955:27:11"},"returnParameters":{"id":11722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11729,"src":"7006:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7006:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7005:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11748,"nodeType":"FunctionDefinition","src":"7342:171:11","nodes":[],"body":{"id":11747,"nodeType":"Block","src":"7442:71:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":11742,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11732,"src":"7486:12:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11743,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11734,"src":"7500:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11740,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7469:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7473:12:11","memberName":"encodePacked","nodeType":"MemberAccess","src":"7469:16:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11739,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7459:9:11","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7459:47:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11738,"id":11746,"nodeType":"Return","src":"7452:54:11"}]},"documentation":{"id":11730,"nodeType":"StructuredDocumentation","src":"7075:262:11","text":"@dev returns the hash of the init code (creation code + ABI-encoded args) used in CREATE2\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode\n @param args the ABI-encoded arguments to the constructor of C"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"7351:12:11","parameters":{"id":11735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11732,"mutability":"mutable","name":"creationCode","nameLocation":"7377:12:11","nodeType":"VariableDeclaration","scope":11748,"src":"7364:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11731,"name":"bytes","nodeType":"ElementaryTypeName","src":"7364:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":11734,"mutability":"mutable","name":"args","nameLocation":"7404:4:11","nodeType":"VariableDeclaration","scope":11748,"src":"7391:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11733,"name":"bytes","nodeType":"ElementaryTypeName","src":"7391:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7363:46:11"},"returnParameters":{"id":11738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11748,"src":"7433:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7433:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7432:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11862,"nodeType":"FunctionDefinition","src":"7624:1124:11","nodes":[],"body":{"id":11861,"nodeType":"Block","src":"7774:974:11","nodes":[],"statements":[{"assignments":[11760],"declarations":[{"constant":false,"id":11760,"mutability":"mutable","name":"tokenCodeSize","nameLocation":"7792:13:11","nodeType":"VariableDeclaration","scope":11861,"src":"7784:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11759,"name":"uint256","nodeType":"ElementaryTypeName","src":"7784:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11761,"nodeType":"VariableDeclarationStatement","src":"7784:21:11"},{"AST":{"nodeType":"YulBlock","src":"7824:59:11","statements":[{"nodeType":"YulAssignment","src":"7838:35:11","value":{"arguments":[{"name":"token","nodeType":"YulIdentifier","src":"7867:5:11"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"7855:11:11"},"nodeType":"YulFunctionCall","src":"7855:18:11"},"variableNames":[{"name":"tokenCodeSize","nodeType":"YulIdentifier","src":"7838:13:11"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":11750,"isOffset":false,"isSlot":false,"src":"7867:5:11","valueSize":1},{"declaration":11760,"isOffset":false,"isSlot":false,"src":"7838:13:11","valueSize":1}],"id":11762,"nodeType":"InlineAssembly","src":"7815:68:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11764,"name":"tokenCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11760,"src":"7900:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":11765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7916:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7900:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320676574546f6b656e42616c616e63657328616464726573732c616464726573735b5d293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e","id":11767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7919:80:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""},"value":"StdUtils getTokenBalances(address,address[]): Token address is not a contract."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""}],"id":11763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7892:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7892:108:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11769,"nodeType":"ExpressionStatement","src":"7892:108:11"},{"assignments":[11771],"declarations":[{"constant":false,"id":11771,"mutability":"mutable","name":"length","nameLocation":"8075:6:11","nodeType":"VariableDeclaration","scope":11861,"src":"8067:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11770,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11774,"initialValue":{"expression":{"id":11772,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11753,"src":"8084:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8094:6:11","memberName":"length","nodeType":"MemberAccess","src":"8084:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8067:33:11"},{"assignments":[11780],"declarations":[{"constant":false,"id":11780,"mutability":"mutable","name":"calls","nameLocation":"8136:5:11","nodeType":"VariableDeclaration","scope":11861,"src":"8110:31:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":11778,"nodeType":"UserDefinedTypeName","pathNode":{"id":11777,"name":"IMulticall3.Call","nameLocations":["8110:11:11","8122:4:11"],"nodeType":"IdentifierPath","referencedDeclaration":32306,"src":"8110:16:11"},"referencedDeclaration":32306,"src":"8110:16:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":11779,"nodeType":"ArrayTypeName","src":"8110:18:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"id":11787,"initialValue":{"arguments":[{"id":11785,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8167:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8144:22:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IMulticall3.Call memory[] memory)"},"typeName":{"baseType":{"id":11782,"nodeType":"UserDefinedTypeName","pathNode":{"id":11781,"name":"IMulticall3.Call","nameLocations":["8148:11:11","8160:4:11"],"nodeType":"IdentifierPath","referencedDeclaration":32306,"src":"8148:16:11"},"referencedDeclaration":32306,"src":"8148:16:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":11783,"nodeType":"ArrayTypeName","src":"8148:18:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}}},"id":11786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:30:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8110:64:11"},{"body":{"id":11815,"nodeType":"Block","src":"8221:189:11","statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11798,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"8293:5:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"id":11800,"indexExpression":{"id":11799,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8299:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8293:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11803,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11750,"src":"8330:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783730613038323331","id":11806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8370:10:11","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"components":[{"baseExpression":{"id":11807,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11753,"src":"8383:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11809,"indexExpression":{"id":11808,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8393:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8383:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8382:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8347:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8351:18:11","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"8347:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":11811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8347:50:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11801,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"8304:11:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32461_$","typeString":"type(contract IMulticall3)"}},"id":11802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8316:4:11","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":32306,"src":"8304:16:11","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Call_$32306_storage_ptr_$","typeString":"type(struct IMulticall3.Call storage pointer)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8322:6:11","8337:8:11"],"names":["target","callData"],"nodeType":"FunctionCall","src":"8304:95:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"src":"8293:106:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32306_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"id":11814,"nodeType":"ExpressionStatement","src":"8293:106:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11792,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8204:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11793,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8208:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8204:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11816,"initializationExpression":{"assignments":[11789],"declarations":[{"constant":false,"id":11789,"mutability":"mutable","name":"i","nameLocation":"8197:1:11","nodeType":"VariableDeclaration","scope":11816,"src":"8189:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11788,"name":"uint256","nodeType":"ElementaryTypeName","src":"8189:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11791,"initialValue":{"hexValue":"30","id":11790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8201:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8189:13:11"},"loopExpression":{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8216:3:11","subExpression":{"id":11795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8218:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"8216:3:11"},"nodeType":"ForStatement","src":"8184:226:11"},{"assignments":[null,11821],"declarations":[null,{"constant":false,"id":11821,"mutability":"mutable","name":"returnData","nameLocation":"8474:10:11","nodeType":"VariableDeclaration","scope":11861,"src":"8459:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11819,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11820,"nodeType":"ArrayTypeName","src":"8459:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":11826,"initialValue":{"arguments":[{"id":11824,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"8508:5:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}],"expression":{"id":11822,"name":"multicall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11206,"src":"8488:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"}},"id":11823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8498:9:11","memberName":"aggregate","nodeType":"MemberAccess","referencedDeclaration":32339,"src":"8488:19:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_struct$_Call_$32306_memory_ptr_$dyn_memory_ptr_$returns$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct IMulticall3.Call memory[] memory) payable external returns (uint256,bytes memory[] memory)"}},"id":11825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8488:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(uint256,bytes memory[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8456:58:11"},{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"8588:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11831,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8613:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8599:13:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11828,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11829,"nodeType":"ArrayTypeName","src":"8603:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8599:21:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"8588:32:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11834,"nodeType":"ExpressionStatement","src":"8588:32:11"},{"body":{"id":11859,"nodeType":"Block","src":"8667:75:11","statements":[{"expression":{"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11845,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"8681:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11847,"indexExpression":{"id":11846,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8690:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8681:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":11850,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11821,"src":"8706:10:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":11852,"indexExpression":{"id":11851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8717:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8706:13:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8722:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11853,"name":"uint256","nodeType":"ElementaryTypeName","src":"8722:7:11","typeDescriptions":{}}}],"id":11855,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8721:9:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8695:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8699:6:11","memberName":"decode","nodeType":"MemberAccess","src":"8695:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8695:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8681:50:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11858,"nodeType":"ExpressionStatement","src":"8681:50:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8650:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11840,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8654:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8650:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11860,"initializationExpression":{"assignments":[11836],"declarations":[{"constant":false,"id":11836,"mutability":"mutable","name":"i","nameLocation":"8643:1:11","nodeType":"VariableDeclaration","scope":11860,"src":"8635:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11835,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11838,"initialValue":{"hexValue":"30","id":11837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8647:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8635:13:11"},"loopExpression":{"expression":{"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8662:3:11","subExpression":{"id":11842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8664:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11844,"nodeType":"ExpressionStatement","src":"8662:3:11"},"nodeType":"ForStatement","src":"8630:112:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTokenBalances","nameLocation":"7633:16:11","parameters":{"id":11754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11750,"mutability":"mutable","name":"token","nameLocation":"7658:5:11","nodeType":"VariableDeclaration","scope":11862,"src":"7650:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11749,"name":"address","nodeType":"ElementaryTypeName","src":"7650:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11753,"mutability":"mutable","name":"addresses","nameLocation":"7682:9:11","nodeType":"VariableDeclaration","scope":11862,"src":"7665:26:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11751,"name":"address","nodeType":"ElementaryTypeName","src":"7665:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11752,"nodeType":"ArrayTypeName","src":"7665:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7649:43:11"},"returnParameters":{"id":11758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11757,"mutability":"mutable","name":"balances","nameLocation":"7760:8:11","nodeType":"VariableDeclaration","scope":11862,"src":"7743:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"7743:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11756,"nodeType":"ArrayTypeName","src":"7743:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7742:27:11"},"scope":11975,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":11881,"nodeType":"FunctionDefinition","src":"8968:144:11","nodes":[],"body":{"id":11880,"nodeType":"Block","src":"9051:61:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":11875,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"9092:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9084:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11873,"name":"uint256","nodeType":"ElementaryTypeName","src":"9084:7:11","typeDescriptions":{}}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9084:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9076:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11871,"name":"uint160","nodeType":"ElementaryTypeName","src":"9076:7:11","typeDescriptions":{}}},"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9076:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9068:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11869,"name":"address","nodeType":"ElementaryTypeName","src":"9068:7:11","typeDescriptions":{}}},"id":11878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11868,"id":11879,"nodeType":"Return","src":"9061:44:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addressFromLast20Bytes","nameLocation":"8977:22:11","parameters":{"id":11865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11864,"mutability":"mutable","name":"bytesValue","nameLocation":"9008:10:11","nodeType":"VariableDeclaration","scope":11881,"src":"9000:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9000:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8999:20:11"},"returnParameters":{"id":11868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11881,"src":"9042:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11866,"name":"address","nodeType":"ElementaryTypeName","src":"9042:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9041:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11898,"nodeType":"FunctionDefinition","src":"9407:235:11","nodes":[],"body":{"id":11897,"nodeType":"Block","src":"9580:62:11","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9599:37:11","statements":[{"nodeType":"YulAssignment","src":"9613:13:11","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"9622:4:11"},"variableNames":[{"name":"fnOut","nodeType":"YulIdentifier","src":"9613:5:11"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":11887,"isOffset":false,"isSlot":false,"src":"9622:4:11","valueSize":1},{"declaration":11894,"isOffset":false,"isSlot":false,"src":"9613:5:11","valueSize":1}],"id":11896,"nodeType":"InlineAssembly","src":"9590:46:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_castLogPayloadViewToPure","nameLocation":"9416:25:11","parameters":{"id":11888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11887,"mutability":"mutable","name":"fnIn","nameLocation":"9479:4:11","nodeType":"VariableDeclaration","scope":11898,"src":"9442:41:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":11886,"nodeType":"FunctionTypeName","parameterTypes":{"id":11884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11886,"src":"9451:12:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11882,"name":"bytes","nodeType":"ElementaryTypeName","src":"9451:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9450:14:11"},"returnParameterTypes":{"id":11885,"nodeType":"ParameterList","parameters":[],"src":"9479:0:11"},"src":"9442:41:11","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"9441:43:11"},"returnParameters":{"id":11895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11894,"mutability":"mutable","name":"fnOut","nameLocation":"9569:5:11","nodeType":"VariableDeclaration","scope":11898,"src":"9532:42:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":11893,"nodeType":"FunctionTypeName","parameterTypes":{"id":11891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11893,"src":"9541:12:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11889,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9540:14:11"},"returnParameterTypes":{"id":11892,"nodeType":"ParameterList","parameters":[],"src":"9569:0:11"},"src":"9532:42:11","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"9531:44:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11910,"nodeType":"FunctionDefinition","src":"9648:133:11","nodes":[],"body":{"id":11909,"nodeType":"Block","src":"9709:72:11","nodes":[],"statements":[{"expression":{"arguments":[{"id":11906,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11900,"src":"9766:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":11904,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11926,"src":"9745:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":11903,"name":"_castLogPayloadViewToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"9719:25:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":11905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9719:46:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9719:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11908,"nodeType":"ExpressionStatement","src":"9719:55:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"9657:15:11","parameters":{"id":11901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11900,"mutability":"mutable","name":"payload","nameLocation":"9686:7:11","nodeType":"VariableDeclaration","scope":11910,"src":"9673:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11899,"name":"bytes","nodeType":"ElementaryTypeName","src":"9673:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9672:22:11"},"returnParameters":{"id":11902,"nodeType":"ParameterList","parameters":[],"src":"9709:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11926,"nodeType":"FunctionDefinition","src":"9787:381:11","nodes":[],"body":{"id":11925,"nodeType":"Block","src":"9851:317:11","nodes":[],"statements":[{"assignments":[11916],"declarations":[{"constant":false,"id":11916,"mutability":"mutable","name":"payloadLength","nameLocation":"9869:13:11","nodeType":"VariableDeclaration","scope":11925,"src":"9861:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11915,"name":"uint256","nodeType":"ElementaryTypeName","src":"9861:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11919,"initialValue":{"expression":{"id":11917,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"9885:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9893:6:11","memberName":"length","nodeType":"MemberAccess","src":"9885:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9861:38:11"},{"assignments":[11921],"declarations":[{"constant":false,"id":11921,"mutability":"mutable","name":"consoleAddress","nameLocation":"9917:14:11","nodeType":"VariableDeclaration","scope":11925,"src":"9909:22:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11920,"name":"address","nodeType":"ElementaryTypeName","src":"9909:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11923,"initialValue":{"id":11922,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11226,"src":"9934:16:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9909:41:11"},{"AST":{"nodeType":"YulBlock","src":"10012:150:11","statements":[{"nodeType":"YulVariableDeclaration","src":"10026:36:11","value":{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"10050:7:11"},{"kind":"number","nodeType":"YulLiteral","src":"10059:2:11","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10046:3:11"},"nodeType":"YulFunctionCall","src":"10046:16:11"},"variables":[{"name":"payloadStart","nodeType":"YulTypedName","src":"10030:12:11","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10075:77:11","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"10095:3:11"},"nodeType":"YulFunctionCall","src":"10095:5:11"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"10102:14:11"},{"name":"payloadStart","nodeType":"YulIdentifier","src":"10118:12:11"},{"name":"payloadLength","nodeType":"YulIdentifier","src":"10132:13:11"},{"kind":"number","nodeType":"YulLiteral","src":"10147:1:11","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10150:1:11","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"10084:10:11"},"nodeType":"YulFunctionCall","src":"10084:68:11"},"variables":[{"name":"r","nodeType":"YulTypedName","src":"10079:1:11","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":11921,"isOffset":false,"isSlot":false,"src":"10102:14:11","valueSize":1},{"declaration":11912,"isOffset":false,"isSlot":false,"src":"10050:7:11","valueSize":1},{"declaration":11916,"isOffset":false,"isSlot":false,"src":"10132:13:11","valueSize":1}],"id":11924,"nodeType":"InlineAssembly","src":"10003:159:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"9796:19:11","parameters":{"id":11913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11912,"mutability":"mutable","name":"payload","nameLocation":"9829:7:11","nodeType":"VariableDeclaration","scope":11926,"src":"9816:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11911,"name":"bytes","nodeType":"ElementaryTypeName","src":"9816:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9815:22:11"},"returnParameters":{"id":11914,"nodeType":"ParameterList","parameters":[],"src":"9851:0:11"},"scope":11975,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":11940,"nodeType":"FunctionDefinition","src":"10174:138:11","nodes":[],"body":{"id":11939,"nodeType":"Block","src":"10236:76:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":11934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10286:13:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":11935,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11928,"src":"10301:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11932,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10262:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10266:19:11","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10262:23:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10262:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11931,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"10246:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10246:59:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11938,"nodeType":"ExpressionStatement","src":"10246:59:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10183:21:11","parameters":{"id":11929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11928,"mutability":"mutable","name":"p0","nameLocation":"10219:2:11","nodeType":"VariableDeclaration","scope":11940,"src":"10205:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11927,"name":"string","nodeType":"ElementaryTypeName","src":"10205:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10204:18:11"},"returnParameters":{"id":11930,"nodeType":"ParameterList","parameters":[],"src":"10236:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11957,"nodeType":"FunctionDefinition","src":"10318:162:11","nodes":[],"body":{"id":11956,"nodeType":"Block","src":"10392:88:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":11950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10442:21:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":11951,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11942,"src":"10465:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11952,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11944,"src":"10469:2:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11948,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10418:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10422:19:11","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10418:23:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10418:54:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11947,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"10402:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10402:71:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11955,"nodeType":"ExpressionStatement","src":"10402:71:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10327:21:11","parameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11942,"mutability":"mutable","name":"p0","nameLocation":"10363:2:11","nodeType":"VariableDeclaration","scope":11957,"src":"10349:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11941,"name":"string","nodeType":"ElementaryTypeName","src":"10349:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11944,"mutability":"mutable","name":"p1","nameLocation":"10375:2:11","nodeType":"VariableDeclaration","scope":11957,"src":"10367:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11943,"name":"uint256","nodeType":"ElementaryTypeName","src":"10367:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10348:30:11"},"returnParameters":{"id":11946,"nodeType":"ParameterList","parameters":[],"src":"10392:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11974,"nodeType":"FunctionDefinition","src":"10486:167:11","nodes":[],"body":{"id":11973,"nodeType":"Block","src":"10566:87:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":11967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10616:20:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":11968,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11959,"src":"10638:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11969,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11961,"src":"10642:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10592:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10596:19:11","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10592:23:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:53:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11964,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"10576:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10576:70:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11972,"nodeType":"ExpressionStatement","src":"10576:70:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10495:21:11","parameters":{"id":11962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11959,"mutability":"mutable","name":"p0","nameLocation":"10531:2:11","nodeType":"VariableDeclaration","scope":11974,"src":"10517:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11958,"name":"string","nodeType":"ElementaryTypeName","src":"10517:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11961,"mutability":"mutable","name":"p1","nameLocation":"10549:2:11","nodeType":"VariableDeclaration","scope":11974,"src":"10535:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11960,"name":"string","nodeType":"ElementaryTypeName","src":"10535:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10516:36:11"},"returnParameters":{"id":11963,"nodeType":"ParameterList","parameters":[],"src":"10566:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdUtils","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[11975],"name":"StdUtils","nameLocation":"310:8:11","scope":11976,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":11}